Sziasztok.
Van sok-sok képem, amiken egy 8 lépcsős effektsorozatot akarok végrehajtani oly módon, hogy még a rétegeket is kezelem.
A kimenet egy gimp fájl lenne, amin manuálisan hajtanék végre egy CURVE görbemódosítást. (Ezután menteném el a végleges fájlt)
Célom az, hogy az első 8 lécsős feladat után kelljen egerészéssel és gyorsgombokkal szórakoznom.
Kérdés: hogyan írok gimp-scriptet, ami lefut parancssorban?
- 310 megtekintés
Hozzászólások
Szia,
ez segít? https://opensource.com/article/21/1/gimp-scripting
A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.
- A hozzászóláshoz be kell jelentkezni
Az nem megoldás, ha előbb végrehajtod az összes képen ezeket az effekteket Bimp-pel?
- A hozzászóláshoz be kell jelentkezni
Egy alaposan kikísérletezett ceruzarajz-effektről van szó, már nem akarom mással csinálni.
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
- A hozzászóláshoz be kell jelentkezni
De hát ez egy GIMP plugin, akármelyik GIMP operationt-t (vagy akár plugint) támogatja. Csak ad egy GUI-t, amiben összekattintgathatod a batch processt. Annyi hátránya van, hogy mindenképp elmenti az eredményt és XCF-et nem támogat, vagyis attól függően mit szeretnél csinálni nem biztos, hogy ez elfogadható megoldás.
- A hozzászóláshoz be kell jelentkezni
Egen, sajnos a readme szerint járva el mégsem képes nálam lefordulni...
└─# make
which gimptool-2.0 && \
gcc -o ./bin/bimp -O2 -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng16 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/gimp-2.0 -Wall -Wno-unused-variable -Wno-pointer-sign -DGIMP_DISABLE_DEPRECATED src/*.c src/manipulation-gui/*.c src/images/*.c -lgimpui-2.0 -lgimpwidgets-2.0 -lgimpmodule-2.0 -lgimp-2.0 -lgimpmath-2.0 -lgimpconfig-2.0 -lgimpcolor-2.0 -lgimpbase-2.0 -lgtk-x11-2.0 -lgdk-x11-2.0 -lpangocairo-1.0 -latk-1.0 -lcairo -lgdk_pixbuf-2.0 -lgio-2.0 -lpangoft2-1.0 -lpango-1.0 -lgobject-2.0 -lglib-2.0 -lfontconfig -lfreetype -lm
/usr/bin/gimptool-2.0
src/bimp-manipulations-gui.c: In function ‘bimp_open_editwindow’:
src/bimp-manipulations-gui.c:48:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_resize_save;
^
src/bimp-manipulations-gui.c:52:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_crop_save;
^
src/bimp-manipulations-gui.c:56:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_fliprotate_save;
^
src/bimp-manipulations-gui.c:60:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_color_save;
^
src/bimp-manipulations-gui.c:64:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_sharpblur_save;
^
src/bimp-manipulations-gui.c:68:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_changeformat_save;
^
src/bimp-manipulations-gui.c:72:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_watermark_save;
^
src/bimp-manipulations-gui.c:76:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_rename_save;
^
src/bimp-manipulations-gui.c:80:14: warning: assignment from incompatible pointer type [-Wincompatible-pointer-types]
save = &bimp_userdef_save;
^
src/bimp-operate.c: In function ‘apply_resize’:
src/bimp-operate.c:516:13: error: ‘GIMP_LAYER_MODE_NORMAL_LEGACY’ undeclared (first use in this function)
GIMP_LAYER_MODE_NORMAL_LEGACY
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/bimp-operate.c:516:13: note: each undeclared identifier is reported only once for each function it appears in
src/bimp-operate.c:534:37: error: ‘GIMP_FILL_BACKGROUND’ undeclared (first use in this function); did you mean ‘GIMP_OFFSET_BACKGROUND’?
gimp_drawable_fill(layerId, GIMP_FILL_BACKGROUND);
^~~~~~~~~~~~~~~~~~~~
GIMP_OFFSET_BACKGROUND
src/bimp-operate.c:538:9: warning: implicit declaration of function ‘gimp_item_transform_translate’; did you mean ‘gimp_item_transform_rotate’? [-Wimplicit-function-declaration]
gimp_item_transform_translate(layerId, -abs(view_w - final_w) / 2, -abs(view_h - final_h) / 2);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimp_item_transform_rotate
src/bimp-operate.c: In function ‘apply_color’:
src/bimp-operate.c:667:23: warning: implicit declaration of function ‘gimp_drawable_brightness_contrast’; did you mean ‘gimp_brightness_contrast’? [-Wimplicit-function-declaration]
success = gimp_drawable_brightness_contrast(
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimp_brightness_contrast
src/bimp-operate.c:684:23: warning: implicit declaration of function ‘gimp_drawable_levels_stretch’; did you mean ‘gimp_levels_stretch’? [-Wimplicit-function-declaration]
success = gimp_drawable_levels_stretch(out->drawable_ids[i]);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
gimp_levels_stretch
src/bimp-operate.c:710:31: warning: implicit declaration of function ‘gimp_drawable_curves_spline’; did you mean ‘gimp_drawable_set_pixel’? [-Wimplicit-function-declaration]
success = gimp_drawable_curves_spline(out->drawable_ids[i], GIMP_HISTOGRAM_VALUE, colorcurve_num_points_v, colorcurve_ctr_points_v);
^~~~~~~~~~~~~~~~~~~~~~~~~~~
gimp_drawable_set_pixel
src/bimp-operate.c: In function ‘image_save’:
src/bimp-operate.c:1107:17: error: ‘GIMP_CONVERT_DITHER_FS’ undeclared (first use in this function); did you mean ‘GIMP_FIXED_DITHER’?
GIMP_CONVERT_DITHER_FS,
^~~~~~~~~~~~~~~~~~~~~~
GIMP_FIXED_DITHER
src/bimp-operate.c:1108:17: error: ‘GIMP_CONVERT_PALETTE_GENERATE’ undeclared (first use in this function); did you mean ‘GIMP_TYPE_CONVERT_PALETTE_TYPE’?
GIMP_CONVERT_PALETTE_GENERATE,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GIMP_TYPE_CONVERT_PALETTE_TYPE
src/bimp-operate.c: In function ‘image_save_gif’:
src/bimp-operate.c:1184:9: error: ‘GIMP_CONVERT_DITHER_FS’ undeclared (first use in this function); did you mean ‘GIMP_FIXED_DITHER’?
GIMP_CONVERT_DITHER_FS,
^~~~~~~~~~~~~~~~~~~~~~
GIMP_FIXED_DITHER
src/bimp-operate.c:1185:9: error: ‘GIMP_CONVERT_PALETTE_GENERATE’ undeclared (first use in this function); did you mean ‘GIMP_TYPE_CONVERT_PALETTE_TYPE’?
GIMP_CONVERT_PALETTE_GENERATE,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GIMP_TYPE_CONVERT_PALETTE_TYPE
src/bimp-utils.c: In function ‘get_bimp_localedir’:
src/bimp-utils.c:172:5: warning: ignoring return value of ‘readlink’, declared with attribute warn_unused_result [-Wunused-result]
readlink("/proc/self/exe", path, bufsize);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Még próbálkozom vele, nem értem, mi a nyomora...
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
- A hozzászóláshoz be kell jelentkezni
Gimben az összes funkciót file megnyitás, file mentés, stb. elérhető scripből. Tudsz változókat definiálni, így ha a bemeneti fileneveid inkrementálisak, le tudod scriptelni, hogy mindegyiken egyenként végig menjen. Annó, animációhoz csináltam auto cellpaintert, átméretezőt.
Pl:
(define (resize-image filename-in filename-out new-width new-height)
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename-in "")))
(drawable (car (gimp-image-active-drawable image)))
)
(gimp-image-scale image new-width new-height)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename-out "")
)
)
Ez egy fileátméretező függvény, ebbe illeszt be az általad használt filter kombinációt. Ehhez még kell egy keret függvényt írnod, ami minden egyes filera meghívja a függvényedet. Az adott könyvtárban való listázáshoz kell a file-glob() (egy mintával megegyező filenevek listáját adja vissza) eredményének egy whileban történő végigpörgetésére a függvényeddel. És ennyi.
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Megnézem, mit tudok a fentiek alapján.
Amúgy ez a nyolc lépésem lenne:
1.
Colors/Desaturate/Luminosity
2.
Duplicate
3.
Invert
4.
Layer/mode/dodge
5.
Filters/Blur/Gaussian blur/40/RLE
6.
Flatten image
7.
Duplicate
------ > fájlba írás
8.
Colors/Curves Pull (ezt minden fájlon már manuálisan végezném.)
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
- A hozzászóláshoz be kell jelentkezni
1. gimp-drawable-desaturate()
2. gimp-layer-new-from-drawable()
3. gimp-drawable-invert()
4. gimp-layer-set-mode(layer, 42)
5. plug-in-gauss() (non-interaktívba kell paraméterezni.)
6. gimp-image-flatten
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Köszi!
Honnan tudod a fv neveket? Hullafáradtan épp azt kerestem, de mindig félrekeresek...
Amúgy a desaturate is paraméteres (Luminosity) -- és azt írod, ilyenek nem szkriptelhetők.
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
- A hozzászóláshoz be kell jelentkezni
Filters->Script-Fu->Console->Browse...
Elkezded gépelni és dobja fg nevet és a helpet hozzá.
gimp-desaturate-drawable mode paraméternél lehet választani DESATURATE-VALUE módot. De még nem használtam, kicsit túrni kell a netet.
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Tipp: nem kell semmit túrni, csak megnézni a "Desaturate" funkció ablakát.
:)
- A hozzászóláshoz be kell jelentkezni
Annyit tudok, hogy a szkriptek a /usr/share/gimp/2.0/scripts/ könyvtárban vannak.
Szóval itt létrehozok egy fájlt, és az általad javasolt fv-eket beírom?
10-féle lény van:
-- aki ismeri a bináris számrendszert,
-- és amelyik nem.
- A hozzászóláshoz be kell jelentkezni
Igen. De ha csak adott userrel akarod használni a scriptet, akkor ~/.gimp-2.x/scripts/ könyvtárba is mehet.
Annyi, hogy a script végén, két függvénnyel regisztrálnod kell a gimpbe a scriptedet:
pl:
(script-fu-register "script-fu-scriptednekneve"
_"_Scripted neve..."
_"Mit csinál a scripted"
"Ki csinálta a scriptedet plusz email"
"Adrian Likins"
"mikor csinaltad a scripted"
"RGB* GRAY*" <=milyen képtípusokkal tud dolgozni a cripted
GUI elemek és paraméterek felsorolása, 1 elem/sor,
)
(script-fu-menu-register "script-fu-scriptedneve"
"<Image>/Filters/Ahovaakarodtenniascriptedetamenuben")
"Maradt még 2 kB-om. Teszek bele egy TCP-IP stacket és egy bootlogót. "
- A hozzászóláshoz be kell jelentkezni
Ebben is Lisp van! :-P <3 (na jó, Scheme, de az is egy Lisp dialektus)
- A hozzászóláshoz be kell jelentkezni