#!/usr/bin/perl # THIS IS OUTDATED AND WILL NOT RUN WITH CURRENT GIMP VERSIONS! # Send to me by Jason van Zyl # see the accompanying file image_list # This is just a complete rip-off of Marc's first plug-in. # Doesn't really do much, but hey, we'll get there! use Gimp; $black = "#000000"; $white = "#FFFFFF"; #$font = "frutiger"; $font = "engraver"; # enable example mode... if disabled, it will write out some logos, and not # wont' display anything. $example = 1; # set trace level to watch functions as they are executed #Gimp::set_trace(TRACE_NAME); # convert image to indexed # and automatically save it as interlaced gif. sub index_and_save($$) { my($img,$path)=@_; gimp_image_flatten($img); gimp_convert_indexed_palette($img,1,0,32,""); file_gif_save(RUN_NONINTERACTIVE,$img,-1,$path,$path,1,0,0,0) unless $example; } sub Create_Image { my($text,$size)=@_; my($Image,$Text_Layer,$Background_Layer,$Width,$Height); # Let's see if we can plug a little daemon in here. $border = 10; $size = 100; $Background_Colour = $white; $Text_Colour = $black; # Create an image. We'll just set whatever size here because we want # to resize the image when we figure out how big the text is. $Image = gimp_image_new(256,256,RGB); # Create a layer for the text. $Text_Layer = gimp_text($Image,-1,0,0,$text,$border,1,$size,PIXELS,"*",$font,"*","*","*","*"); # Do the fun stuff with the text. gimp_palette_set_background($Text_Colour); gimp_layer_set_preserve_trans($Text_Layer, TRUE); #gimp_edit_fill($Image, $Text_Layer); # Now figure out the size of $Text_Layer. $Width = gimp_drawable_width($Text_Layer); $Height = gimp_drawable_height($Text_Layer); # Create a layer for the background based on the size of the text. $Background_Layer = gimp_layer_new($Image,$Width,$Height,RGB_IMAGE,"Background",100,NORMAL_MODE); # Resize the $Image based on size of text. gimp_image_resize($Image,$Width,$Height,0,0); # Add the $Background_Layer to the image. gimp_image_add_layer($Image, $Background_Layer, 1); # Set the background colour and fill it in with that colour. gimp_palette_set_background($Background_Colour); gimp_drawable_fill($Background_Layer,BG_IMAGE_FILL); #index_and_save ($Image, "/tmp/${text}_" . ".gif"); gimp_display_new ($Image) if $example; #gimp_image_delete($Image) unless $example; } sub extension_create_images { #Get our list of strings that we want to make images with. $Image_Directory = "/tmp"; $active = 0; open(IMAGE_LIST, "/tmp/image_list"); while( ) { chop; Create_Image (split(/\|/)); } } sub query { gimp_install_procedure("extension_create_images", "a test extension in perl", "try it out", "Marc Lehmann", "Marc Lehmann", "1997-02-06", N_"/Xtns/Create_Images", "*", PROC_EXTENSION, [[PARAM_INT32, "run_mode", "Interactive, [non-interactive]"]], []); } sub net { extension_create_images; } exit main;