GIMP/Programowanie: Różnice pomiędzy wersjami
m →C: PNM reading and writing |
|||
Linia 75: | Linia 75: | ||
==Scheme== |
==Scheme== |
||
'''Scheme''' jest to język programowanie ( |
'''Scheme''' jest to język programowanie (odmiana [[Lisp]]a). W gimpie jest jednym z 2 głównych języków skryptowym (domyślnie instalowanych). |
||
Wersje |
Wersje: |
||
*'''TinyScheme''' jest to wersja języka Scheme zgodna ze standardem R5RS. Tak jest od wersji 2.4 Gimpa, |
*'''TinyScheme''' jest to wersja języka Scheme zgodna ze standardem R5RS. Tak jest od wersji 2.4 Gimpa, |
||
* SIOD <ref>[http://www.gimp.org/docs/script-fu-update.html SCRIPT-FU IN GIMP 2.4]</ref> |
* SIOD <ref>[http://www.gimp.org/docs/script-fu-update.html SCRIPT-FU IN GIMP 2.4]</ref> |
||
Linia 82: | Linia 82: | ||
'''Script-Fu''' jest to wtyczka do gimpa pozwalająca uruchamiać skrypty w TinyScheme <ref>[http://www.ve3syb.ca/software/tiny-fu/tiny-fu-faq.html tiny-fu-faq ]</ref> |
'''Script-Fu''' jest to wtyczka do gimpa pozwalająca uruchamiać skrypty w TinyScheme <ref>[http://www.ve3syb.ca/software/tiny-fu/tiny-fu-faq.html tiny-fu-faq ]</ref> |
||
Jest to również języki makr ( |
Jest to również języki makr (ang. macro language) oparty na Scheme. |
||
Funkcje |
Funkcje: |
||
* script-fu-register |
* script-fu-register |
||
* script-fu-menu-register |
* script-fu-menu-register |
||
Linia 90: | Linia 90: | ||
Dzięki temu plikowi skrypty mogą być używane w obrębie Gimpa. |
Dzięki temu plikowi skrypty mogą być używane w obrębie Gimpa. |
||
'''Interpretator Skryptów''' ( |
'''Interpretator Skryptów''' (ang. Script Interpreter) który parsuje i uruchamia kod w Scheme jest to TinyScheme składnik wtyczki Script-Fu. Jest on zlokalizowany w katalogu tinyscheme: plug-ins/script-fu. |
||
Linia 96: | Linia 96: | ||
===Konsola === |
===Konsola === |
||
Możesz otworzyć konsolę za pomocą menu głównego |
Możesz otworzyć konsolę za pomocą menu głównego: Menu/Filtry/Script-Fu/Konsola |
||
Witamy w TinyScheme |
Witamy w TinyScheme |
||
Copyright (c) Dimitrios Souflis |
Copyright (c) Dimitrios Souflis |
||
Linia 103: | Linia 103: | ||
Teraz można wprowadzać polecenia w języku Scheme, a dokładniej w jego odmianie TinyScheme. |
Teraz można wprowadzać polecenia w języku Scheme, a dokładniej w jego odmianie TinyScheme. |
||
Na przykład dodać 3 i 5 |
Na przykład dodać 3 i 5: |
||
(+ 3 5) |
(+ 3 5) |
||
lub pozdrowić świat |
lub pozdrowić świat: |
||
(gimp-message "Hello World") |
(gimp-message "Hello World") |
||
utworzyć nowy obraz |
utworzyć nowy obraz:<ref>[http://www.cs.grinnell.edu/~rebelsky/Glimmer/ScriptFu/Labs/script-fu.html Generating GIMP Images with Script-Fu by Glimmer Labs]</ref> |
||
(define width 256) |
(define width 256) |
||
(define height 384) |
(define height 384) |
||
(define image (car (gimp-image-new width height 0))) |
(define image (car (gimp-image-new width height 0))) |
||
utworzyć nową warstwę |
utworzyć nową warstwę: |
||
(define layer (car (gimp-layer-new image width height 0 "Layer" 100 0))) |
(define layer (car (gimp-layer-new image width height 0 "Layer" 100 0))) |
||
dodać warstwę do obrazu |
dodać warstwę do obrazu: |
||
(gimp-image-add-layer image layer 0) |
(gimp-image-add-layer image layer 0) |
||
wyświetlić nowy obraz |
wyświetlić nowy obraz: |
||
(gimp-display-new image) |
(gimp-display-new image) |
||
wyczyścić obraz na kilka sposobów |
wyczyścić obraz na kilka sposobów: |
||
(gimp-selection-all image) ; Select everything |
(gimp-selection-all image) ; Select everything |
||
Linia 128: | Linia 128: | ||
(gimp-selection-none image) ; Select nothing |
(gimp-selection-none image) ; Select nothing |
||
wybrać kolory |
wybrać kolory: |
||
(gimp-palette-set-background (list 255 255 255)) ; białe tło |
(gimp-palette-set-background (list 255 255 255)) ; białe tło |
||
(gimp-palette-set-foreground (list 0 0 255)) |
(gimp-palette-set-foreground (list 0 0 255)); |
||
wybrać pędzel |
wybrać pędzel: |
||
(gimp-brushes-set-brush "Circle (03)") |
(gimp-brushes-set-brush "Circle (03)") |
||
wyświetlić obraz |
wyświetlić obraz: |
||
(gimp-display-new image) |
(gimp-display-new image) |
||
Linia 152: | Linia 152: | ||
===Katalog=== |
===Katalog=== |
||
'''Linux''' |
'''Linux''': Twoje skrypty są zapisane w twoim lokalnym katalogu skryptów: |
||
~/.gimp-2.8/scripts/ |
~/.gimp-2.8/scripts/ |
||
lub ogólniej |
lub ogólniej: |
||
~/.gimp-[Numer wersji]/scripts/ |
~/.gimp-[Numer wersji]/scripts/ |
||
albo w katalogu globalnym |
albo w katalogu globalnym: |
||
/usr/share/gimp/2.0/scripts |
/usr/share/gimp/2.0/scripts |
||
'''Windows''' |
'''Windows''': User: |
||
C:\user\<username>\.gimp-2.8\scripts |
C:\user\<username>\.gimp-2.8\scripts |
||
Linia 173: | Linia 173: | ||
===Tworzenie=== |
===Tworzenie=== |
||
Etapy tworzenia |
Etapy tworzenia: |
||
* utworzenie pliku z rozszerzeniem scm i odpowiednią zawartością |
* utworzenie pliku z rozszerzeniem scm i odpowiednią zawartością |
||
* zapisanie pliku w odpowiednim katalogu |
* zapisanie pliku w odpowiednim katalogu |
||
Linia 185: | Linia 185: | ||
==== Zawartość skryptu ==== |
==== Zawartość skryptu ==== |
||
Wzorce skryptu |
Wzorce skryptu: |
||
*[http://www.home.unix-ag.org/simon/files/script-fu-template.scm Wzorzec nr 1 skryptu] |
*[http://www.home.unix-ag.org/simon/files/script-fu-template.scm Wzorzec nr 1 skryptu] |
||
* wzorzec demo.scm |
* wzorzec demo.scm, który nic nie robi:<ref>[http://riceball.com/d/content/gimp-script-fu-notes-jamcam-cleanup-plugins GIMP Script-Fu Notes: JamCam Cleanup Plugins Submitted by johnk ]</ref> |
||
<source lang="scheme"> |
<source lang="scheme"> |
||
(define (script-fu-demo image |
(define (script-fu-demo image |
||
Linia 208: | Linia 208: | ||
Każdy skrypt '''musi zawierać''':<ref>[http://docs.gimp.org/en/gimp-using-script-fu-tutorial-first-script.html Your First Script-Fu Script - gimp docs]</ref> |
Każdy skrypt '''musi zawierać''':<ref>[http://docs.gimp.org/en/gimp-using-script-fu-tutorial-first-script.html Your First Script-Fu Script - gimp docs]</ref> |
||
* definicję głównej funkcji ( |
* definicję głównej funkcji (opisującej jego działanie) |
||
* wywołanie 2 funkcji ( |
* wywołanie 2 funkcji (w celu rejestracji skryptu w gimpie): script-fu-register i script-fu-menu-register |
||
Linia 221: | Linia 221: | ||
Opis funkcji script-fu-register |
Opis funkcji script-fu-register: <ref>[http://www.adp-gmbh.ch/misc/tools/script_fu/func/script_fu_register.html Opis script_fu_register - René Nyffenegger]</ref> |
||
<pre> |
<pre> |
||
(script-fu-register name_of_function |
(script-fu-register name_of_function |
||
Linia 263: | Linia 263: | ||
Dodawanie '''pozycji w menu''' |
Dodawanie '''pozycji w menu''': |
||
Za pomocą funkcji script-fu-register dodajemy tylko etykietę menu <ref>[http://git.gnome.org/browse/gimp/commit/?id=d4120fe1ab54812a805d920e5c5ca695ab60b956 commit d4120fe1ab54812a805d920e5c5ca695ab60b956 |
Za pomocą funkcji script-fu-register dodajemy tylko etykietę menu <ref>[http://git.gnome.org/browse/gimp/commit/?id=d4120fe1ab54812a805d920e5c5ca695ab60b956 commit d4120fe1ab54812a805d920e5c5ca695ab60b956: Updated all scripts to use script-fu-menu-register and pass just the menu by Kevin Cozens 2004-11-22]</ref> |
||
<source lang="scheme"> |
<source lang="scheme"> |
||
Linia 290: | Linia 290: | ||
</source> |
</source> |
||
Za pomocą funkcji script-fu-menu-register dodajemy pozycję menu ( |
Za pomocą funkcji script-fu-menu-register dodajemy pozycję menu (ang. menu-item) w postaci łańcucha zawierającego pełną ścieżkę i zaczynającego się od: |
||
* <Image> dla menu lokalnego obrazu ( |
* <Image> dla menu lokalnego obrazu (otwieranego prawym przyciskiem myszy |
||
* <Toolbox>/Xtns/ dla menu głównego |
* <Toolbox>/Xtns/ dla menu głównego:<ref>[http://developer.gimp.org/api/2.0/libgimp/libgimp-gimpplugin.html#gimp-plugin-menu-register gimp-plugin-menu-register at GIMP Library Reference Manual]</ref><ref>[http://imagic.weizmann.ac.il/~dov/gimp/scheme-tut.html A Scheme Tutorial for Gimp Users Updated for Gimp-1.2 by Dov Grobgeld]</ref> |
||
<source lang="scheme"> |
<source lang="scheme"> |
||
(script-fu-menu-register "script-fu-xach-effect" |
(script-fu-menu-register "script-fu-xach-effect" |
||
"<Image>/Filters/Light and Shadow/Shadow") |
"<Image>/Filters/Light and Shadow/Shadow") |
||
; nowa pozycja w menu głównym ( |
; nowa pozycja w menu głównym (wersja ang) |
||
; script which works on an already existing image |
; script which works on an already existing image |
||
; the script will be available through the gimp menu that is launched by the right mouse button over an image |
; the script will be available through the gimp menu that is launched by the right mouse button over an image: the popup image menu |
||
; Such script must also have as their first and second argument a SF-IMAGE and a SF-DRAWABLE. |
; Such script must also have as their first and second argument a SF-IMAGE and a SF-DRAWABLE. |
||
</source> |
</source> |
||
inny przykład |
inny przykład:<ref>[http://imagic.weizmann.ac.il/~dov/gimp/scheme-tut.html A Scheme Tutorial for Gimp Users Updated for Gimp-1.2 by Dov Grobgeld]</ref> |
||
<source lang="scheme"> |
<source lang="scheme"> |
||
(script-fu-menu-register "uni-img" |
(script-fu-menu-register "uni-img" |
||
Linia 314: | Linia 314: | ||
====Rejestracja skryptu==== |
====Rejestracja skryptu==== |
||
* za pomocą menu |
* za pomocą menu: Menu/Filtry/Scipt-Fu/Odśwież skrypty |
||
* automatycznie przy starcie gimpa |
* automatycznie przy starcie gimpa |
||
Możemy to sprawdzić za pomocą przeglądarki skryptów wywołanej z menu |
Możemy to sprawdzić za pomocą przeglądarki skryptów wywołanej z menu: Menu/Pomoc/Przeglądarka wtyczek |
||
====Uruchomienie skryptu==== |
====Uruchomienie skryptu==== |
||
Skrypt możesz uruchomić |
Skrypt możesz uruchomić: |
||
* za pomocą menu głównego lub podręcznego ( |
* za pomocą menu głównego lub podręcznego (jeśli tworzy własną pozycję w menu) |
||
* z linii poleceń korzystając z trybu wsadowego gimpa <ref>[http://www.gimp.org/tutorials/Basic_Batch/ Basic Batch at Gimp doc]</ref> |
* z linii poleceń korzystając z trybu wsadowego gimpa <ref>[http://www.gimp.org/tutorials/Basic_Batch/ Basic Batch at Gimp doc]</ref> |
||
* z innego skryptu<ref>[http://www.netads.com/~meo/gimp/faq-dev.html#sf_what Script-Fu Questions by Miles O'Neal]</ref> |
* z innego skryptu<ref>[http://www.netads.com/~meo/gimp/faq-dev.html#sf_what Script-Fu Questions by Miles O'Neal]</ref> |
Wersja z 21:48, 26 wrz 2019
Opracowane na podstawie GIMP 2.6.8 wersja polska /linux
Architektura gimpa
W gimpie możemy wyróżnić ( z punktu widzenie programisty) 3 główne składniki :
- jądro ( ang. core)
- bazę procedur : PDB ( ang. Procedural database )[1]
- wtyczki, rozszerzenia i skrypty
Wtyczka wpływa na działanie gimpa poprzez PDB [2]
Dokładna architektura jest bardziej skomplikowana[3]
API
Wtyczki ( ang. plugin), rozszerzenia, skrypty
Gimp jest dużym programem. Ma ponad 600 000 linii kodu w około 2 600 plikach.[6] Łatwiej dodać nową funkcję poprzez napisanie wtyczki, niż poprzez modyfikację kodu.[7] Wiele wartościowych wtyczek ma 100-200 linii kodu ( np. w C )[8]
Dodatkowe funkcje w gimpie można realizować poprzez :
- wtyczki (ang. plugin) : osobny proces wywoływany przez rdzeń gimpa , kod źródłowy wymaga kompilacji, zmieniają obrazy
- rozszerzenia (ang. extension) : osobny proces, kod źródłowy wymaga kompilacji, nie zmieniają obrazów
- skrypty (ang. script ) : nie wymaga kompilacji, zmienia obraz
Działanie wtyczek można sprawdzić za pomocą funkcji GIMP_PLUGIN_DEBUG[9]
Porównanie skryptów Gimpa i Photoshopa
Skrypty GIMP są podobne do Photoshop "Actions" w tym że mogą automatyzować powtarzalne czynności ale różnią się w kilku szczegółach :
- Photoshop actions mogą być nagrywane przez użytkownika, skrypty GIMP-a nie .
- Photoshop actions są zawsze w tym samym miejscu i są wyraźnie oznaczone jako actions.
- Skrypty GIMP mogą być umieszczone w dowolnym miejscu i mogą być wyświetlane tak, jakby były nową funkcją.
- Photoshop actions używają bezwzględnych wartości (np. zaznacz 2000 x 3000 pikseli, niezależnie od tego jak duży jest obraz)
- Skrypty GIMP mogą obliczać zmienne oparte na atrybutach obrazu. (np. zacznij na 1/3 wzdłuż obrazu i zaznacz drugą trzecią)
- Skrypty GIMP mogą sprawdzać atrybuty obrazu i zatrzymać lub wyświetlać komunikaty gdy pewne warunki są lub nie są spełnione.
Podsumowując tworzenie skryptów GIMP-a jest bardziej złożone niż PS actions ale jednocześnie mają one większe możliwości i są bardziej elastyczne.[10]
Ostrzeżenie
- Uwaga : wtyczki mogą bardzo dużo ( np. udostępnić twój system dla innych osób bez twojej wiedzy) dlatego instaluj tylko wtyczki z zaufanego źródła
- wtyczki mogą nie działać w innej wersji gimpa niż tej dla której zostały utworzone. Dokumentacji nie ma ( jest przestarzała). Informacji trzeba szukać w kodzie źródłowym ( po angielsku)
Źródła
Szukaj w
Podział dodatków
Dodatki możemy podzielić wg :
- języka programowania w którym zostały napisane
- kompilacji
- skompilowane czyli wtyczki lub rozszerzenia
- nieskompilowane czyli skrypty
- złożoności wtyczki
- jeden plik
- wiele plików ( osobny katalog)
- operujące :
- globalnie ( nie związane z konkretnym obrazem)
- operujące na konkretnym obrazie
Języki programowanie
Dodatki mogą być w :
- c ( skompilowane , czyli wtyczki) [13]
- perl ( nieskompilowane, czyli skrypty, nie jest instalowany domyślnie)[14][15][16]
- python ( rozszerzenie py, mimo że są to skrypty to wymagają kompilacji)[17]
- scheme (nieskompilowane, czyli skrypty) rozszerzenie scm dla Script-Fu [18][19]
- Tcl ( nieskompilowane, czyli skrypty, nie jest instalowany domyślnie)
Scheme
Scheme jest to język programowanie (odmiana Lispa). W gimpie jest jednym z 2 głównych języków skryptowym (domyślnie instalowanych). Wersje:
- TinyScheme jest to wersja języka Scheme zgodna ze standardem R5RS. Tak jest od wersji 2.4 Gimpa,
- SIOD [20]
Script-Fu jest to wtyczka do gimpa pozwalająca uruchamiać skrypty w TinyScheme [21]
Jest to również języki makr (ang. macro language) oparty na Scheme.
Funkcje:
- script-fu-register
- script-fu-menu-register
są zdefiniowane w procedurze ts_init_procedures() w pliku plug-ins/script-fu/scheme-wrapper.c Dzięki temu plikowi skrypty mogą być używane w obrębie Gimpa.
Interpretator Skryptów (ang. Script Interpreter) który parsuje i uruchamia kod w Scheme jest to TinyScheme składnik wtyczki Script-Fu. Jest on zlokalizowany w katalogu tinyscheme: plug-ins/script-fu.
Konsola
Możesz otworzyć konsolę za pomocą menu głównego: Menu/Filtry/Script-Fu/Konsola
Witamy w TinyScheme Copyright (c) Dimitrios Souflis Konsola Script-Fu - Rozwój interaktywny schematu
Teraz można wprowadzać polecenia w języku Scheme, a dokładniej w jego odmianie TinyScheme.
Na przykład dodać 3 i 5:
(+ 3 5)
lub pozdrowić świat:
(gimp-message "Hello World")
utworzyć nowy obraz:[22]
(define width 256) (define height 384) (define image (car (gimp-image-new width height 0)))
utworzyć nową warstwę:
(define layer (car (gimp-layer-new image width height 0 "Layer" 100 0)))
dodać warstwę do obrazu:
(gimp-image-add-layer image layer 0)
wyświetlić nowy obraz:
(gimp-display-new image)
wyczyścić obraz na kilka sposobów:
(gimp-selection-all image) ; Select everything (gimp-edit-clear layer) ; Do "Clear" from the "Edit" menu (gimp-selection-none image) ; Select nothing
wybrać kolory:
(gimp-palette-set-background (list 255 255 255)) ; białe tło (gimp-palette-set-foreground (list 0 0 255));
wybrać pędzel:
(gimp-brushes-set-brush "Circle (03)")
wyświetlić obraz:
(gimp-display-new image)
Tutaj możesz również sprawdzić działanie skryptu.
Katalog
Linux: Twoje skrypty są zapisane w twoim lokalnym katalogu skryptów:
~/.gimp-2.8/scripts/
lub ogólniej:
~/.gimp-[Numer wersji]/scripts/
albo w katalogu globalnym:
/usr/share/gimp/2.0/scripts
Windows: User:
C:\user\<username>\.gimp-2.8\scripts
Global:
C:\Program Files\GIMP 2\share\gimp\2.0\scripts
Tworzenie
Etapy tworzenia:
- utworzenie pliku z rozszerzeniem scm i odpowiednią zawartością
- zapisanie pliku w odpowiednim katalogu
- zarejestrować skrypt w gimpie
Nazwa skryptu
Nazwa skryptu powinna być:
script-fu-nazwa
ponieważ wtedy będzie dobrze widoczny w liście procedur [23]
Zawartość skryptu
Wzorce skryptu:
- Wzorzec nr 1 skryptu
- wzorzec demo.scm, który nic nie robi:[24]
(define (script-fu-demo image
drawable)
1)
(script-fu-register "script-fu-demo"
"_Demo..."
"Demo Plugin."
"John Kawakami "
"John Kawakami"
"8/28/2006"
"RGB*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0)
(script-fu-menu-register "script-fu-demo"
_"/Script-Fu/Demo")
Każdy skrypt musi zawierać:[25]
- definicję głównej funkcji (opisującej jego działanie)
- wywołanie 2 funkcji (w celu rejestracji skryptu w gimpie): script-fu-register i script-fu-menu-register
Każdy skrypt może zawierać:
- wywołanie innego skryptu
- wywołanie innej wtyczki
Definicje funkcji
Opis funkcji script-fu-register: [26]
(script-fu-register name_of_function menu_label ; pass just the menu label in script-fu-register description author copyright date images_applyable [parameter [parameter...]] ) parameter SF-TYPE "description" "default value" SF-TYPE * SF-VALUE * SF-STRING * SF-FONT * SF-COLOR * SF-TOGGLE * SF-FILENAME * SF-PATTERN * SF-GRADIENT * SF-IMAGE together with SF-DRAWABLE * SF-DRAWABLE together with SF-IMAGE * SF-ADJUSTMENT
Dodawanie pozycji w menu:
Za pomocą funkcji script-fu-register dodajemy tylko etykietę menu [27]
(script-fu-register "script-fu-xach-effect"
_"_Xach-Effect..." ; pass just the menu label in script-fu-register
_"Add a subtle translucent 3D effect to the selected region (or alpha)"
"Adrian Likins <adrian@gimp.org>"
"Adrian Likins"
"9/28/97"
"RGB* GRAY*"
SF-IMAGE "Image" 0
SF-DRAWABLE "Drawable" 0
SF-ADJUSTMENT _"Highlight X offset" '(-1 -100 100 1 10 0 1)
SF-ADJUSTMENT _"Highlight Y offset" '(-1 -100 100 1 10 0 1)
SF-COLOR _"Highlight color" "white"
SF-ADJUSTMENT _"Highlight opacity" '(66 0 255 1 10 0 0)
SF-COLOR _"Drop shadow color" "black"
SF-ADJUSTMENT _"Drop shadow opacity" '(100 0 100 1 10 0 0)
SF-ADJUSTMENT _"Drop shadow blur radius" '(12 0 255 1 10 0 1)
SF-ADJUSTMENT _"Drop shadow X offset" '(5 0 255 1 10 0 1)
SF-ADJUSTMENT _"Drop shadow Y offset" '(5 0 255 1 10 0 1)
SF-TOGGLE _"Keep selection" TRUE
)
Za pomocą funkcji script-fu-menu-register dodajemy pozycję menu (ang. menu-item) w postaci łańcucha zawierającego pełną ścieżkę i zaczynającego się od:
- <Image> dla menu lokalnego obrazu (otwieranego prawym przyciskiem myszy
- <Toolbox>/Xtns/ dla menu głównego:[28][29]
(script-fu-menu-register "script-fu-xach-effect"
"<Image>/Filters/Light and Shadow/Shadow")
; nowa pozycja w menu głównym (wersja ang)
; script which works on an already existing image
; the script will be available through the gimp menu that is launched by the right mouse button over an image: the popup image menu
; Such script must also have as their first and second argument a SF-IMAGE and a SF-DRAWABLE.
inny przykład:[30]
(script-fu-menu-register "uni-img"
"<Toolbox>/Xtns/Script-Fu/Tutorials")
; to create a new image that is independant of earlier images, then the script will be available
; through the gimp menu that is launched by the right mouse button over an image
; Such script must also have as their first and second argument a SF-IMAGE and a SF-DRAWABLE.
Rejestracja skryptu
- za pomocą menu: Menu/Filtry/Scipt-Fu/Odśwież skrypty
- automatycznie przy starcie gimpa
Możemy to sprawdzić za pomocą przeglądarki skryptów wywołanej z menu: Menu/Pomoc/Przeglądarka wtyczek
Uruchomienie skryptu
Skrypt możesz uruchomić:
- za pomocą menu głównego lub podręcznego (jeśli tworzy własną pozycję w menu)
- z linii poleceń korzystając z trybu wsadowego gimpa [31]
- z innego skryptu[32]
Python
Dokumentacja [33]
Konsola
Możesz otworzyć konsolę za pomocą menu głównego : Menu/Filtry/Python-Fu/Console
GIMP 2.6.8 Python Console Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) [GCC 4.4.3] >>>
Teraz można wprowadzać polecenia w języku Python.
Przykłady
Skrypt do wizualizacji płaszczyzny zespolonej [34]
C
Jak utworzyć pierwszą wtyczkę w c [35][36][37]
Zapisujemy w lokalnym ( prywatnym) katalogu wtyczek :
~/.gimp-2.6/plug-ins
lub ogólniej :
~/.gimp-[Numer wersji]/plug-ins/
Kompilujemy :
gimptool --install plugin.c
lub
gimptool --install-admin plugin.c
Przykładowy wtyczek :
- Mathmap
- PNM reading and writing ( also pfm)
Odnośniki
- ↑ pdbgen source
- ↑ How to write a GIMP plug-in Written By Dave Neary
- ↑ Earl Oliver, Jaime Ruiz, Steven She, and Jun Wang, The Software Architecture of the GIMP, December 2006.
- ↑ GIMP Library Reference Manual for GIMP 2.6.0
- ↑ GEGL
- ↑ van Gumster J, Shimonski Robert : GIMP Bible. John Wiley and Sons 2009, stron = 722 -04-16 | isbn = 978-0470523971
- ↑ Browse gimp code online
- ↑ Skrypty w gimpie - dokumentacja
- ↑ debug-plug-ins by
- ↑ gimp-scripts at Open Source Photography
- ↑ A repository of extensions for GIMP
- ↑ Script-FU by René Nyffenegger
- ↑ Gimp plug-in by Kevin Turner
- ↑ Gimp doc : Basic Perl
- ↑ updated Gimp doc for ver. 2.0 - perl
- ↑ Gimp tutorial : Perl Debugged
- ↑ gimp python doc
- ↑ Script-Fu and plug-ins for The GIMP by Simon Budig
- ↑ gimp-using-script-fu-tutorial-first-script at User Manual
- ↑ SCRIPT-FU IN GIMP 2.4
- ↑ tiny-fu-faq
- ↑ Generating GIMP Images with Script-Fu by Glimmer Labs
- ↑ GIMP Script-Fu Notes: JamCam Cleanup Plugins Submitted by johnk
- ↑ GIMP Script-Fu Notes: JamCam Cleanup Plugins Submitted by johnk
- ↑ Your First Script-Fu Script - gimp docs
- ↑ Opis script_fu_register - René Nyffenegger
- ↑ commit d4120fe1ab54812a805d920e5c5ca695ab60b956: Updated all scripts to use script-fu-menu-register and pass just the menu by Kevin Cozens 2004-11-22
- ↑ gimp-plugin-menu-register at GIMP Library Reference Manual
- ↑ A Scheme Tutorial for Gimp Users Updated for Gimp-1.2 by Dov Grobgeld
- ↑ A Scheme Tutorial for Gimp Users Updated for Gimp-1.2 by Dov Grobgeld
- ↑ Basic Batch at Gimp doc
- ↑ Script-Fu Questions by Miles O'Neal
- ↑ Gimp Python Documentation James Henstridge
- ↑ script for GIMP by Michael J. Gruber
- ↑ Jak utworzyć skrypt w c
- ↑ How to write a GIMP plug-in in C
- ↑ GIMP Application Reference Manual Next Part XIII. Plug-Ins