GIMP/Programowanie: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Zbędne spacje |
|||
Linia 4:
=Architektura gimpa=
[[Plik:Gimp-architecture.png|right|thumb|Architektura Gimpa]]
W gimpie możemy wyróżnić (
* jądro (
* bazę procedur
* wtyczki, rozszerzenia i skrypty
Wtyczka wpływa na działanie gimpa poprzez PDB
Dokładna architektura jest bardziej skomplikowana<ref>[http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.84.7715 Earl Oliver, Jaime Ruiz, Steven She, and Jun Wang, The Software Architecture of the GIMP, December 2006. ]</ref>
=API=
* GIMP Library (
* GEGL
=Wtyczki (
Gimp jest dużym programem. Ma ponad 600 000 linii kodu w około 2 600 plikach.<ref>van Gumster J, Shimonski Robert : GIMP Bible. John Wiley and Sons 2009, stron = 722 -04-16 | isbn = 978-0470523971</ref> Łatwiej dodać nową funkcję poprzez napisanie wtyczki, niż poprzez modyfikację kodu.<ref>[http://git.gnome.org/browse/gimp/ Browse gimp code online]</ref> Wiele wartościowych wtyczek ma 100-200 linii kodu (
* wtyczki (ang. plugin)
* rozszerzenia (ang. extension)
▲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
Linia 31 ⟶ 34:
==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.
Linia 43 ⟶ 47:
==Ostrzeżenie==
[[Plik:AnimatedStop.gif|right|thumb]]
* Uwaga
* wtyczki mogą nie działać w innej wersji gimpa niż tej dla której zostały utworzone. Dokumentacji nie ma (
==Źródła ==
Linia 52 ⟶ 56:
==Podział dodatków==
Dodatki możemy podzielić wg
* języka programowania w którym zostały napisane
* kompilacji
Linia 59 ⟶ 64:
* złożoności wtyczki
** jeden plik
** wiele plików (
* operujące
** globalnie (
** operujące na konkretnym obrazie
=== Języki programowanie ===
Dodatki mogą być w
* [[
* [[perl]] (nieskompilowane, czyli skrypty, nie jest instalowany domyślnie)<ref>[http://www.gimp.org/tutorials/Basic_Perl/ Gimp doc : Basic Perl]</ref><ref>[http://imagic.weizmann.ac.il/~dov/gimp/perl-tut-2.0/ updated Gimp doc for ver. 2.0 - perl ]</ref><ref>[http://www.gimp.org/tutorials/Perl-Debugged/ Gimp tutorial : Perl Debugged]</ref> * [[python]] (
* scheme (nieskompilowane, czyli skrypty) rozszerzenie scm dla Script-Fu <ref>[http://www.home.unix-ag.org/simon/gimp/guadec2002/gimp-plugin/html/ Script-Fu and plug-ins for The GIMP by Simon Budig]</ref><ref>[http://docs.gimp.org/2.2/en/gimp-using-script-fu-tutorial-first-script.html gimp-using-script-fu-tutorial-first-script at User Manual]</ref>
* Tcl (
==Scheme==
Linia 329 ⟶ 335:
Dokumentacja <ref>[http://www.jamesh.id.au/software/pygimp/pygimp.html Gimp Python Documentation James Henstridge]</ref>
===Konsola ===
Możesz otworzyć konsolę za pomocą menu głównego
GIMP 2.6.8 Python Console
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41)
Linia 346 ⟶ 352:
Jak utworzyć pierwszą wtyczkę w c <ref>[http://www.linux.ie/articles/gimp-plugin/part1/index.php?style=printer Jak utworzyć skrypt w c ]</ref><ref>[http://developer.gimp.org/writing-a-plug-in/1/index.html How to write a GIMP plug-in in C]</ref><ref>[http://developer.gimp.org/api/2.0/app/app-plug-in-part.html GIMP Application Reference Manual Next Part XIII. Plug-Ins]</ref>
Zapisujemy w lokalnym (
~/.gimp-2.6/plug-ins
lub ogólniej
~/.gimp-[Numer wersji]/plug-ins/
Kompilujemy
gimptool --install plugin.c
Linia 361 ⟶ 367:
Przykładowy wtyczek
* [[GIMP/Programowanie/Mathmap|Mathmap]]
* [https://github.com/piksels-and-lines-orchestra/gimp/blob/master/plug-ins/common/file-pnm.c PNM reading and writing] (
=Odnośniki=
|