gnome / gimp-perl Goto Github PK
View Code? Open in Web Editor NEWRead-only mirror of https://gitlab.gnome.org/GNOME/gimp-perl
Home Page: https://gitlab.gnome.org/GNOME/gimp-perl
License: Other
Read-only mirror of https://gitlab.gnome.org/GNOME/gimp-perl
Home Page: https://gitlab.gnome.org/GNOME/gimp-perl
License: Other
NAME Gimp-Perl allows GIMP extensions/plug-ins/load & save handlers in Perl. SYNOPSIS use Gimp; use Gimp::Fu; podregister { # your code my $image = new Gimp::Image (600, 300, RGB); my $bg = $image->layer_new( 600,300,RGB_IMAGE,"Background",100,LAYER_MODE_NORMAL_LEGACY ); $image->insert_layer($bg, 1, 0); $image->edit_fill($bg, FILL_FOREGROUND); Gimp::Display->new($image); $image; }; exit main; __END__ =head1 NAME example_function - Short description of the function =head1 SYNOPSIS <Image>/File/Create/Patterns/Example... =head1 DESCRIPTION Longer description of the function... See the end of this document for a complete example script. PREREQUISITES Perl: 5.14+ The GNU Image Manipulation Program (GIMP): 2.8 (pref 2.8.10) http://www.gimp.org/ ftp://ftp.gimp.org/pub/gimp/ Gtk2, the perl extension for gtk+2, "gtk2-perl-xs" variant http://gtk2-perl.sourceforge.net PDL, the Perl Data Language: 2.0+ (2.004+ recommended) http://www.cpan.org/ Other packages: use CPAN to install this one, and it will get these too. INSTALLATION On Unix/Linux, you should be able to: perl ./Makefile.PL && make test && make install To get a listing of configuration options, enter: perl ./Makefile.PL --help After installation, these perl plug-ins should be visible from within the Gimp (and many, many more): Filters/Perl/Server Filters/Artistic/Windify Filters/Misc/Prepare for GIF Filters/Misc/Webify If you wish to install the plugins in your personal GIMP directory instead of the system-wide one (e.g. if you don't have root access), install instead using this: make install GTINSTALL='gimptool-2.0 --install-bin' To override other build or install options see ExtUtils::MakeMaker docs. To build a slp/deb/rpm/whatever package use the normal prefix, and override prefix at "make install" time (lowercase for GIMP, upper for perl): make prefix=`pwd`/debian/tmp/usr PREFIX=`pwd`/debian/tmp/usr install SUPPORT/MAILING LISTS/MORE INFO Please report any problems: https://gitlab.gnome.org/GNOME/gimp-perl/-/issues/ https://rt.cpan.org/Dist/Display.html?Name=Gimp Homepages: https://git.gnome.org/browse/gimp-perl/ http://search.cpan.org/dist/Gimp/ Currently-suggested mailing list: gimp-user (see http://www.gimp.org/mail_lists.html) New releases will be announced to gimp-announce. You can also upload your scripts to the gimp registry at http://registry.gimp.org/ If you want to play along at home with git: git://git.gnome.org/gimp-perl EXAMPLE PERL PLUG-IN Here is a complete plug-in, examples/example-fu: #!/usr/bin/perl use strict; use Gimp; use Gimp::Fu; podregister { # no input parameters line - source filter inserts. See Gimp::Fu docs. $Gimp::verbose = 1; # remove this to stop debugging output Gimp::Context->push; # store current settings, so present ones preserved my $img = Gimp::Image->new($width, $height, RGB); $img->undo_group_start; # so all actions can be undone in one step # the __ before the string will translate it if available my $l = Gimp::Layer->new($img, $width, $height, RGB, __"Background", 100, LAYER_MODE_NORMAL_LEGACY); $l->insert_layer(0, 0); # required! # now a few syntax examples Gimp::Context->set_foreground($text_colour) unless $ignore_cols; Gimp::Context->set_background($bg_colour) unless $ignore_cols; fill $l FILL_BACKGROUND; my $text_layer = $img->text_fontname(-1, 10, 10, $text, 5, 1, 10, PIXELS, $font); Gimp::Context->set_foreground("green"); $img->undo_group_end; # close the undo group Gimp::Context->pop; # restore original context Gimp::Display->new($img); $img; # return image, as Gimp::Fu added that to our output parameters # because no-image-input }; exit main; __END__ =head1 NAME example_script - Gimp::Fu example, mostly non-functional =head1 SYNOPSIS <Image>/Filters/Languages/_Perl/_Test/Dialog =head1 DESCRIPTION Just a starting point to derive new scripts. Always remember to put a descriptive help message here! =head1 PARAMETERS # one of each type of parameter here # argument type, variable name, short description, default, extra arguments [PF_SLIDER , "width" , "Image width" , 360, [300, 500]], [PF_SPINNER , "height" , "Image height" , 100, [100, 200]], [PF_STRING , "text" , "Message" , "example text"], [PF_TEXT , "longtext" , "Longer text" , "more example text"], [PF_FILE , "file" , "File" , "/tmp"], [PF_INT8 , "int8" , "8-bit int" , 10], [PF_INT32 , "bordersize" , "Border size" , 10], [PF_FLOAT , "borderwidth" , "Border width" , 1/5], [PF_FONT , "font" , "Font"], [PF_COLOUR , "text_colour" , "Text colour", [10,10,10]], [PF_COLOUR , "bg_colour" , "Background colour" , [0xff,0x80,0]], [PF_TOGGLE , "ignore_cols" , "Ignore colours" , 0], [PF_IMAGE , "extra_image" , "Additional picture to ignore"], [PF_DRAWABLE , "extra_draw" , "Something to ignore as well" ], [PF_RADIO , "type" , "Effect type" , 0, [small => 0, large => 1]], [PF_BRUSH , "a_brush" , "An unused brush"], [PF_PATTERN , "a_pattern" , "An unused pattern"], [PF_GRADIENT , "a_gradients" , "An unused gradients"], =head1 AUTHOR Marc Lehmann <[email protected]> =head1 DATE 2000-03-21 =head1 LICENSE (c) 1998,1999,2000 Marc Lehmann Distributed under the same terms as Gimp-Perl.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.