Pannon Egyetem, Veszprém Modern Filológiai és Társadalomtudományi Kar Tanárképző Központ
Tanári mesterképzési szak Informatikatanári szakképzettségi terület
Webes és képszerkesztési technológiák A GIMP és a Script-Fu fejlesztői környezet
Készítette: Hosszú István (IMKR35)
Veszprém 2010
2
Tartalomjegyzék Bevetetés................................................................................................................................ 3 A GIMP ................................................................................................................................. 4 A gimp legfontosabb tulajdonságai ................................................................................... 4 A Gimp működés közben .................................................................................................. 5 A kép mozgatása és az Eszköztár ...................................................................................... 8 Rétegek ............................................................................................................................ 12 Rétegek kapcsolatai, rétegműveletek .............................................................................. 14 Script-Fu program írása ....................................................................................................... 16 Irodalomjegyzék .................................................................................................................. 24 Mellékletek .......................................................................................................................... 25
3
Bevetetés A magyarországi középiskolákat végignézve a Microsoft termékek dominanciája egyértelmű, köszönhetően a pályázati és kormányzati támogatásoknak. Egy átlagos iskolai számítógépparkot vizsgálva a kép eléggé egyhangú. Operációs rendszerként Microsoft Windows XP, szövegszerkesztő, táblázatkezelő, adatbázis-kezelő, prezentáció készítő és weboldalszerkesztő programok alternatívájaként a Microsoft Office valamely verzióját találjuk. A hálózatok kezelésénél, fájl- és levelezőszervereknél tapasztalható némi változás, ugyanis itt több helyen alkalmaznak Linux alapú kiszolgálókat. A speciális szakokat oktató iskoláknál (például: ruhatervező, elektroműszerész, informatikus stb) a szükséges kiegészítő szoftverek sokszínűsége hoz némi felüdülést az egyhangúságba, azonban a speciális szoftvereknek a legtöbb esetben csillagászati ára van. Az internet térhódításával szinte egyidejűleg terjedtek el az ingyenes szoftverek. A nyílt forráskód és a legtöbbször költségmentes kereskedelmi alkalmazás ötvözeteként a népszerűség egyre csak fokozódik. A saját iskolámban immáron 10. éve a tananyag része egy képszerkesztés és képmanipulációt segítő szoftver megismerése. Kezdetben 30 napos próbaverzió illetve korlátozott tudású szoftverekkel próbálkozott az intézmény, majd a Corel régebbi, ingyenessé tett változataival folytatódott a sor. Szükséges volt találni egy olyan ingyenes képszerkesztő programot, mely minden diáknak rendelkezésére áll, egyszerűen telepíthető és az oktatás szempontjából nélkülözhetetlen funkciókat tartalmazza.
4
A GIMP A Gimp egy pixelgrafikus rajzoló- és képfeldolgozó program, melynek fejlesztése 1995 óta zajlik. A GTK+ régóta folyó nyílt fejlesztéseknek köszönhetően sok más linuxos, grafikus felületet használó alkalmazás is megvalósulhatott. A GTK+ kialakítása a Gimp fejlesztése során vált szükségessé. Gyakran olvashatunk olyan leírásokat, amelyekben a Gimpet az Adobe Photoshoppal hasonlítják össze. Ezek a leírások még nemrégiben is azt hangsúlyozták, hogy a Gimp nem alkalmas nyomdai előkészítésre, mert nem ad lehetőséget a CYMK színrendszer szerinti színre bontás elvégzésére. A folyamatos fejlesztéseknek köszönhetően ez mára már lehetséges. A Gimpet alapvetően Linux alatt kezdték el fejleszteni, majd később vált alkalmassá más operációs rendszereken való működésre. Az előbbiek alapján azt mondhatjuk, hogy a Gimp annyival többet nyújt a vetélytársánál, hogy többféle rendszer alatt működőképes és természetesen az alapelgondolást megőrizve, jelenleg is ingyen használható
A gimp legfontosabb tulajdonságai
A GIMP belső szolgáltatásainak elérése a Script-Fu nyelven keresztül.
Többlépcsős visszavonás/visszaállítás (ennek is csupán a szabad háttértár szab korlátot).
Korlátlan számú, egyszerre megnyitható kép.
Animációk készítése.
Többek között az alábbi képformátumok támogatása: gif, jpg, png, xpm, tiff, tga, mpeg, ps, pdf, pcx, bmp, psd. Ezek a képek betölthetők, menthetők, átalakíthatók a GIMP-pel. • kijelölési eszközök közül négyzet, ellipszis, szabadkézi, Bezier-görbe, egybefüggő területek kijelölés használata.
Több mint száz beépített bővítmény, valamint a beépített Script-Fu segítségével korlátlanul fejleszthető.
Egyéni ecsetek és kitöltőminták készítése.
Nyomásérzékeny tábla támogatása.
Hatékony betűkezelés.
5
Átalakítási eszközök: elforgatás, kicsinyítés, nagyítás, torzítás.
Lapolvasó támogatása, képernyőkép mentése.
Teljes rajzeszközkészlet: ecset, festékszóró, ceruza, toll, másolás, elmosás.
A hatékony memóriagazdálkodás eredményeként a szerkeszthető kép méretét csupán a szabad háttértár korlátozza!
Kezeli a rétegeket (layer) és csatornákat (channels).
Rendkívül hatékony színátmenet és színkeverés.
A GIMP használatához GTK+ szükséges, mely beépítve található az interneten lévő telepítőfájlokban. A program futtatásához legalább 40 MB szabad memória kell, természetesen minden megnyitott kép kezeléséhez nélkülözhetetlen további memória. Egy 640x480 pontból álló kép mérete a használt rétegektől függően megközelítőleg 3 MB. Így a legkisebb javasolt memória 32 MB, az ajánlott pedig a munka jellegétől függően 64– 1000 MB. Ha gépünk viszonylag kevés memóriával rendelkezik, állítsuk nagyobbra a gyorstár méretét.
A Gimp működés közben A GIMP indulása után rögtön megtaláljuk a főablakot és a párbeszédablakokat. A program használatának a legfontosabb irányítópultja a GIMP-GNU fő ablaka (1.ábra). Itt találhatók a Fájlműveletek: az új kép létrehozása, a megnyitás, a bezárás, a külső eszközről beolvasás (lapolvasó és képernyő), a beállítás és a párbeszédablakok megnyitása. A Fájl menü tartalmazza a beépített képelőállító eszközöket (feliratkészítés, háttérkészítők, gombok, betűkészlet elkészítését, kitöltőmintákat, weboldalra feliratokat, gömböt stb.), valamint a böngészőkezelést. Ezenkívül a Súgó is itt található.
1.ábra
6
Megnyitás esetén kiválasztjuk a könyvtárat és a fájl nevét, valamint a formátumát, a GIMP pedig megpróbálja automatikusan felismerni, de mi is kiválaszthatjuk. A kiválasztott fájl esetén megjelenik a kis nézőkép. Új kép létrehozása esetén a kép méretét megadhatjuk képpontban, hüvelykben, milliméterben, centiméterben, nyomdai pontban és akár általunk létrehozott mértékegységben is. Kiválaszthatjuk a kép típusát (színes vagy szürkeárnyalatos) és a háttér színét. Miután létrehoztunk egy képet, a legtöbb eszköz az eszközpalettán aktívvá válik (2. ábra). Első látásra szokatlan lehet a teljesen különálló eszköz ablaka és a már előbb említett főablak menürendszere, mivel ez utóbbi is 3 módon érhető el. Első lehetőségünk, hogy a megnyitott kép bal felső sarkában található kis háromszögre kattintunk, majd kiválasztjuk a kívánt menüt. A második, hogy a képen az egér jobb gombjával kattintunk, a harmadik lehetőség pedig, hogy a sokat használni kívánt menü felső sorára kattintva „kihelyezzük” az asztalra külön ablakként (3. ábra). Így mindenki megtalálhatja a számára legkényelmesebb megoldást.
3. ábra
2. ábra
7
Lehetőségünk nyílik a navigátorablak használatára is. Ezt a Nézet menüben találjuk. A képek használata során szükség lehet arra, hogy egyszerre lássuk a teljes képet és a nagyítást. Erre találták ki a Nézet/Új nézet menüpontját. Így egyszerre több ablakban láthatjuk a képünket. A Nézet menüben található az Info ablak, melyben nemcsak a képre vonatkozó adatokat találhatjuk meg, hanem az adott területre vonatkozó színeket. Már első induláskor is feltűnhet, hogy a program rengeteg beállítási lehetőséggel bír. A program eszközkészlete általában a képernyő bal felső részén jelenik meg, és amíg nincs megnyitva semmilyen fájl, itt találhatjuk az általános működésre vonatkozó beállításokat és eszközöket. A Szerkesztés/Beállítások menüpontot kiválasztva a Gimp program alapvető paramétereit állíthatjuk. Beállíthatjuk, hogy ha új képet hozunk létre, milyen tulajdonságokkal rendelkezzen. Megadhatjuk a méretét és a színmélységét, majd beállíthatjuk, hogy legfeljebb mekkora legyen a kép által felhasznált memória. Ahogy a bal oldali fanézetben lejjebb haladunk, a következő érdekesség a Súgó (Help System). Ebben a helyzetérzékeny súgó használatát állíthatjuk be az F1 billentyűre, és megadhatjuk, hogy az alapértelmezett belső böngészőt szeretnénk használni, vagy más böngésző jelenítse meg a súgóoldalakat. Ugyanitt állíthatjuk be a visszavonási lehetőségek számát, és hogy a program milyen esetekben végezzen tényleges mentést. Feltételezhetjük, hogyha a kép nem módosult, akkor nem próbáljuk meg menteni, ennek figyelésével pedig a programot is megbízhatjuk, vagyis beállítható, hogy minden esetben történjen-e lemezművelet, vagy csupán akkor, ha a képen valóban történt változás. Régebbi verzióknál elérhető volt a Munkafolyamat állítása, itt tudtuk rávenni a Gimpet, hogy az ablakok helyzetét mentse, és mindig próbálja meg visszaállítani a tárolt állapotot. Meghatározhattuk még a különféle felhasználó által telepített vagy létrehozott kiegészítőket, ecseteket, mintákat, színkészletek és átmenetek tárolására szolgáló könyvtárak helyét, amelyeket a program az első indításkor a felhasználó saját könyvtárában létrehozott és a gimp_verzioszam elérési úton tárolt. Mindezen beállítások mára már teljesen automatikusan történnek, tehát nyugodtan bezárhatjuk személyre szabott Gimp felületünket, az a következő indulásnál változatlan marad.
8
A kép mozgatása és az Eszköztár A szerkesztett képet az egérgörgővel függőlegesen tudjuk görgetni, a CTRL billentyű lenyomása mellett pedig az egér görgője vízszintesen mozgatja a képet. A görgőt a SHIFT billentyűvel együtt használva a nagyítás arányát tudjuk meghatározni. A képen való mozgás másik eszköze a szerkesztett képet mutató ablak jobb alsó sarkában található kis négyirányú nyíl. Erre kattintva a kép kicsinyített másán tudjuk meghatározni az ablakban megjeleníteni kívánt tartalmat. A Gimp egyik legfontosabb erőssége a kiválasztási lehetőségek széles skálája. Egy pixelgrafikus rajzolóprogram nagy előnyének számít, ha precízen tudjuk kiválasztani a szerkesztendő területet. A Gimp eszközkészletében is 7 ikon szerepel, amelyek csak a kiválasztás mikéntjének meghatározására használatosak (4.ábra).
4. ábra
A bekeretezett gombokat szemlélve, balról jobbra haladva, a következőkkel találkozhatunk:
Téglalap alakú terület kiválasztása: az egérgomb lenyomása után a CTRL billentyűvel együtt használva a kijelölés az egérmutatóhoz képest középpontos lesz, míg a SHIFT billentyűvel négyzet alakú területet tudunk kijelölni.
Ellipszisterület kijelölése: a fenti kombinációk szintén érvényesek.
Kijelölés szabadkézi rajzolással.
Varázspálca: hasonló színű képpontok kijelölésére használható. Ha a gombra kattintunk, az alul megjelenő beállításoknál (a Küszöbszint értéknél) a hasonlóság küszöbszintjét adhatjuk meg.
9
Szín szerinti kijelölés: itt szintén állíthatunk küszöbszintet, majd ha a képre kattintunk, a program az egész képen megkeresi a hasonló színű pontokat, és ezek fogják alkotni a kijelölt területet
Kijelölés ollóval: ez a megoldás a varázspálca és a szabadkézi kiválasztás kombinációjának tekinthető, ugyanis a kívánt területet nem szükséges pontosan körberajzolni, csupán vonalakat adunk meg, a Gimp ennek alapján próbálja meg az irányvonalakat a kép tartalmának megfelelően pontosítani.
Mindemellett a program lehetőséget nyújt arra is, hogy a már kijelölt területekhez hozzáadjunk vagy elvegyünk belőlük részeket. Ha valamelyik eszközt használjuk, és a CTRL billentyűt lenyomjuk, a Gimp a kijelölt területeket ponthalmaznak tekintve összegzi. Amennyiben a SHIFT billentyűt ütjük le, a program a területek különbségét képezi. A teljes képtartalom kiválasztására a CTRL-A billentyűk használhatók, és bármilyen kijelölésre vonatkozó adat a SHIFT-CTRL-A billentyűkkel törölhető. A meglévő kijelölt területek ellenkezőjét a CTRL-I billentyűkombinációval választhatjuk ki. A képen a jobb egérgomb segítségével hívható elő a menü, melynek Kijelölés menüpontja további lehetőségeket kínál számunkra. A legfontosabb közülük a Csökkentés. Ezzel a lehetőséggel, adott képpontnyi mértékben csökkenthetjük a területet, továbbá a Növelés ami értelemszerűen a terület növelésére használatos. Az eszköztár közepén látható az éppen érvényes előtér és háttérszín. Ezek valamelyikére duplán kattintva előbukkan egy színpaletta, amelyről kiválaszthatjuk a használni kívánt színt (5. ábra). Ha a szokásos Gimp-paletta nem felel meg, akkor vízfestékszerű palettáról, a HSV
5. ábra
10
színtérhez közelebb álló háromszöggel meghatározottról választhatunk, vagy a GTK+ -ban megszokott megoldást is alkalmazhatjuk. Ezeket a színválasztó ablak fülecskéire kattintva érhetjük el. A színek meghatározása után a kiválasztottakat felcserélhetjük a mellettük található kétirányú nyilacska használatával. A színek mellett meghatározhatjuk a kitöltési mintát is, ami a kitöltési eszköz alkalmazásánál lesz fontos tényező. Az eszköztár alsó részén található vezérlők közül az ecsetet szintén kettős kattintással kelthetjük életre. A sokrétű felhasználást segítő funkciók teszik igazán teljes értékű professzionális programmá a Gimpet. Ilyen például az automatikus levágás. Lapolvasásnál egy kicsit nagyobbra jelölt aktív terület hibáját hivatott korrigálni. Beolvasás alatt olyan fehér területek kerülhetnek a képre, amelyeknek nincsen sem információtartalmuk, sem egyéb jelentőségük. Ilyen esetekben lehet segítségünkre az Automatikus levágás és a Zealous vágás menüpont, amelyek megpróbálják ezeket a területeket megkeresni, és a képet méretre vágják. A Zealous Crop jobb végeredményt ad, ám lassabban működik, ami egy gyorsaságot igénylő munka esetén igen hátrányos. Ezeket a kivágásokat a jobb egérgombbal a képre kattintva, a menüben érhetjük el, a Kép-> menüpontokon keresztül. A Kép -> Átalakítás menüben találhatjuk meg az egyik leghasznosabb beállítást, ami a Guillotine névre hallgat. A GIMP lehetőséget ad arra, hogy függőleges és vízszintes segédvonalakat helyezzünk el a képen. Ennek használatához nyomjuk meg valamelyik vonalzó fölött a bal egérgombot, és húzzuk rá a képre a segédvonalat. A felső vonalzóról lehet vízszintes segédvonalat a képre helyezni, míg a bal oldaliról függőlegeset. Amiért mindez érdekes számunkra, az az imént említett menüpont. Ha ezt kiválasztjuk, akkor a GIMP a megadott segédvonalak mentén feldarabolja a képet. Ennek gyakorlati hasznát a honlap-szerkesztésnél vagy táblázatos megjelenítésnél veszzük (6. ábra).
6. ábra
11
Az Eltolás segítségével a képet eltolhatjuk megadott mértékben. A képet el is forgathatjuk, mégpedig előre megadatott kilencven fokos lépésekben a Forgatás menüben található forgatási értékek kiválasztásával, vagy az eszköztár segítségével. Kiválasztás után a képre kattintunk, megjelenik egy négyzetrács, közepén egy fekete ponttal. A fekete pont adja meg a forgatás középpontját és az egérgomb lenyomása közben mozgatva az egeret megadhatjuk az elforgatás szögét. Ugyanezzel az eszközzel lehetőségünk van átméretezésre, torzításra és perspektíva létrehozására is. Itt állíthatjuk be azt is, hogy az átalakítás során megjelenjen-e a segítséget nyújtó négyzetháló, és hogy az eredményt szeretnénk-e simítani. Ez utóbbi művelet főként nagyításkor lehet érdekes. Ilyenkor nem egyszerűen többször jelenik meg a képpont, de a szomszédos képpontok között átmenetek is keletkeznek. Az eszköz ablakon is lehetőségünk van az eltolásra, perspektivikus átalakításra és az átméretezésre. A Kép->Kép átméretezése menüpontokat kiválasztva lehetséges a tetszés szerinti méretezés. Az eltolás vagy torzítások után célszerű a Rétegek>Réteg kép méretűvé menüpontok kiválasztásával a réteg méretét a képmérethez igazítani (rétegek később részletesen). Az előbbi menüben találjuk meg a rajzvászon átméretezésére szolgáló menüpontot is, mégpedig a Kép->Rajzvászon mérete pontok kiválasztásával. Ez a szolgáltatás akkor lehet hasznos,
ha valamilyen
kép mellé szeretnénk elhelyezni
egy
másikat,
vagy
hozzárajzolnánk más formákat. A Kép menü tárgyalásánál maradva két fontos menüpont található még. Az egyik a kép színmélységének változtatására szolgál, ezt a Mode almenüben találhatjuk meg. Itt alakíthatjuk át a képeinket szürkeárnyalatosra, vagy korlátozott színekből összeálló képpé. Fontossága abban rejlik, hogy a GIMP a legtöbb szűrést és a bonyolultabb műveleteket csak RGB színekkel rendelkező képeken tudja elvégezni. Tehát ha nem ilyen a feldolgozandó kép – például a GIF formátumú képek maximálisan 256 színt használhatnak –, akkor először át kell alakítanunk. Ez az átalakítás akkor is jól jöhet, amikor olyan megjelenítő-eszközünk van, ami nem képes sok szín leképezésére. Ha régebbi mobilok, játékkonzolokon szeretnénk megjeleníteni a képeket, akkor felhasználás előtt át kell azokat alakítani. A másik fontos menüpont tulajdonképpen kettő darab almenüpont. Az egyik az Összevonás (Compose), míg a másik a Felbontás (Decompose). Ez utóbbival tudjuk az elkészült képeket színrétegekre bontani, vagyis a nyomdai előkészítéshez alkalmas formátumra alakítani. Itt választhatunk RGB, HSV, CMYK, CMY színtereket, vagy ha a képnek van átlátszóság csatornája (Alpha channel) akkor szintén ezzel a művelettel juthatunk hozzá. A Összevonás (Compose) menüpont
12
alkalmas az előbbi művelet megfordítására. A megadott képeket színcsatornaként értelmezve összeállítja az eredeti képet. A képhez az Alpha menü segítségével adhatunk átlátszóságot szabályozó színcsatornát.
Rétegek A Gimp tanítása során is kiemelkedően fontos a rétegek megismerése, megértése és rutinszerű használatának elsajátítása. Rétegek kezelése nélkül egy modern pixelgrafikai program szinte elképzelhetetlen. A GIMP lehetőséget biztosít a felhasználónak arra, hogy a teljes grafikát egymás felett elhelyezkedő fóliákból állítsa össze. Ezeket a fóliákat a szaknyelv rétegeknek (Layer) nevezi. A rétegek használatának szintén sok felhasználási lehetősége adódhat, gondoljunk csak arra, hogy egy képből kivágott részletet szeretnénk egy másikon elhelyezni. Ilyenkor a kivágott képrészletet külön rétegen helyezzük el, majd a helyzetének pontos beállítása után hozzákapcsolhatjuk az alatta lévő réteghez. A GIMPben a rétegek kezelésére szolgáló párbeszédablakot a CTRL-L billentyűkkel érhetjük el. Az első indításkor célszerű a Kijelölő ablakkal együtt dokkolni az erre a célra kialakított dokkolható párbeszédablakokat tartalmazó ablakban (7. ábra)
7. ábra
13
A párbeszédablak legnagyobb részét a rétegek megjelenítése foglalja el. Minden egyes tételnek külön nevet adhatunk, ha kettőt kattintunk rá. Az első (legalsó) réteg a háttér, ennek az a különleges tulajdonsága, hogy nem adhatunk hozzá a megjelenést szabályozó maszkot és nem helyezhetjük más rétegek fölé. Háttér rétege minden képnek van, azonban a háttérnek is megadható átlátszóság, aminek akkor láthatjuk hasznát, ha a honlapunkon átlátszó PNG vagy GIF képeket használunk. A rétegeket úgy tehetjük aktívvá, hogy a nevükre kattintunk az egérrel. Így a szűrők és a rajzoló műveletek is a kiválasztott rétegen érvényesülnek. Minden réteg neve mellett megjelenik egy előnézeti kép és egy szem, már ha a réteg látható. A 7. ábra jobb alsó sarkánál lévő fehér lapot ábrázoló ikon segítségével adhatunk új rétegeket a képhez, ezek átlátszóságát pedig az ’Átlátszatl’csúszkával állíthatjuk. Az alul elhelyezkedő nyilak alkalmasak a kijelölt réteg sorrendjének megváltoztatására. Ezek mellett találhatjuk a következőket: réteg kétszerezése, réteg csatolása az alatta lévőhöz és a réteg törlésére szolgáló szemetes. A rétegek csatolására szolgáló gomb olyan esetekben alkalmazható, amikor valamilyen más elemet illesztettünk a képre vagy arról kiválasztottunk egy részletet. Fontos megemlíteni, hogy a GIMP a rétegeket csak a saját formátumában mentve képes megőrizni. Ez a formátum az XCF, és amikor a képet mentjük, elegendő a kiterjesztésként megadni, nem kell feltétlenül kiválasztanunk a legördülő listából.
14
Rétegek kapcsolatai, rétegműveletek Minden rétegnek megadható, hogy milyen kapcsolatban legyen az alatta lévőkkel, azaz milyen műveletet végezzen a program a rétegek képpontjai között (8. ábra). Az adott műveletet az átlátszóságot meghatározó csúszka felett található legördülő listában választhatjuk ki. Ezek közül a Kivonás azt jelenti, hogy az adott réteg képpontértékeit a program kivonja az alatta lévő képpontokból, az Összegzés pedig a képpontok között végez összeadást. Érdekes még a Érték, amelynek alkalmazásakor csak az adott réteg világosság-értékeit veszi figyelembe a program a végső kép meghatározásakor.
8. ábra
Ha egy rétegre a jobb egérgombbal kattintunk, akkor egy menüt láthatunk, amiben fontos műveleteket végezhetünk az adott réteggel. Az első öt menüpontot hatása megegyeznek a párbeszédablak alsó részén található gombokkal. A következő a Réteg
15
határvonal mérete, amellyel meghatározhatjuk, hogy az adott rétegnek mekkora részét vegye figyelembe a program a műveletek végzésekor, míg a Réteg kép méretűre arra való, hogy a kijelölt réteg méretét a képmérethez igazítsa. A következő a Réteg átméretezése, ami megegyezik a kép átméretezésével, csak ebben az esetben kizárólag a kijelölt rétegre vonatkozik. Természetesen a rétegeket egyesíthetjük is, mégpedig a következő menüpontok segítségével. A Látható rétegek összefésülése az éppen látható rétegeket egyesíti. A réteg láthatósága az előtte lévő „szem” ikon alapján állapítható meg. Ez az egyesítési művelet akkor lehet hasznos, amikor úgy gondoljuk, hogy a kép egy részével már elégedettek vagyunk, például már pontosan a helyén van a beillesztett képdarabka. Ekkor egyesítjük a hozzá tartozó réteggel és a továbbiakban nem kell foglalkoznunk azzal, ha egy szűrőt mondjuk csak az összetartozó rétegek egyikére alkalmaztunk. Az Összefésülés lefelé menüpont hasonlóan működik az előbbihez, de itt csak közvetlenül a kijelölt réteg és az alatta lévő egyesítése történik. Az 1 réteggé lapítás menüpont kiválasztásával érhetjük el a kép minden rétegének egyesítését. Ha valami olyan formában mentjük a képet, ami nem támogatja a rétegeket, akkor a GIMP maga is felkínálja, hogy egyesíti a rétegeket, és ilyenkor célszerű ezt engedélyezni, hiszen ha ezt nem tesszük meg, akkor csak az éppen kiválasztott réteget fogja menteni a program. Az ezután következő három menüpont a rétegek maszkolására használatos. A rétegmaszkot úgy kell elképzelni, hogy az ezen található világosságértékek határozzák meg, hogy a rétegnek ez a része mennyire látható. Ha ez az érték 0 (fekete), akkor a hozzá tartozó képpont átlátszó, ha 255-ös (fehér), akkor a képpont teljesen látható. Természetesen nem csak ez a két érték használható. Tehát a maszkot először is létre kell hozni. Ezt a Rétegmaszk hozzáadása menüpont választásával tehetjük meg, majd meg kell adnunk, hogy kezdetben a maszk milyen legyen. Lehet teljesen átlátszó, teljesen átlátszatlan és használhatjuk a réteg meglévő alfa csatornáját is. A maszkról is készül előnézeti kép, amit a létrehozás után láthatunk is a rétegkezelő párbeszédablakban.
Amikor
a
maszkkal
elkészültünk,
a
réteghez
véglegesen
hozzárendelhetjük a Rétegmaszk érvényesítése menüpont kiválasztásával. Azt azonban tudnunk kell, hogy a maszkot hogyan szerkeszthetjük. A réteg kiválasztása után kattintsunk a hozzá tartozó maszk előnézeti képére. Ezt követően a képszerkesztő műveletek mindaddig a maszkra vonatkoznak, amíg a képet nem választjuk ki újra Az utolsó menüpont, amivel a maszkot kezelhetjük, egy igen hasznos művelet. Ez a Maszk kijelöléssé alakítása, amivel kiválaszthatjuk a maszknak megfelelő formát.
16
Script-Fu program írása Egy profi képszerkesztő a gimpet használva napról napra találkozik ugyanazokkal a végrehajtandó feladatokkal. Például internetes hirdetések (banner) készítésénél célszerű lenne bizonyos feladatokat előre megírni. Banner létrehozásánál ha tudjuk az előre megszabott nagyságot pixelben a díszítőelemeket, logókat esetleg a színeket, egy parancs kiadásával szempillantás alatt elkészíthetőek lennének. A Gimp legerősebb oldala, hogy egyszerűbb scripteket (eljárásokat) könnyedén elkészíthetünk vele és a Script-Fu-eljárásböngésző segítségével a bonyolultabb paraméterek beállítása is lehetséges. Használatával tetszőleges számú bővítményeket adhatunk saját képszerkesztő programunkhoz. A Script-Fu a Gimp Lisp-alapú, beépített programozói felületét jelenti. A Script-Fu konzolt a Szűrők -> Script-Fu -> konzol menüben hívhatjuk elő, majd a megnyitott konzol ablakban a tallózás gomra kattintva nyílik meg a Script-Fueljárásböngésző (9. ábra).
9. ábra
Mint minden programozói nyelvben itt is vannak szabályok. Az első, hogy bármilyen utasítást illetve parancsot is adunk ki, azokat mindig zárójelek közé kell tennünk. A meghívott függvény mindig az első helyen szerepel, majd ezt a paraméterek megadása követi. Matematikai műveletek is első helyen kell szerepeljenek prefix jelőlésre figyelve, mivel ezek funkciók.
17
10. ábra
A 10. ábrán a visszatérési érték a két szám összege vagyis 5877. Amennyiben több számmal dolgozunk és a műveletek is eltérnek a beírás némiképp módosul a szabályoknak megfelelően. A számolandó feladat: 3 + (10 / 2) = ?.
11. ábra
A 11. ábrán látható a script-fu számára értelmezhetetlen feladat. A fenti képlet helyes beírása: (+ 3 (/ 10 2)) Váltózók deklarálása a let* paraméterrel lehet, majd azokkal végrehajtunk egy műveletet is. Amennyiben a (let* ( (a 1) (b 2) ) (+ ab) ) parancsból kihagyjuk az (+ a b) műveletet, és azt külön próbáljuk végrehajtatni akkor hibaüzenetet kapunk, mivel ezek a változók csak a let* keretében érvényesek. Tehát a (let* ( (a 1) (b 2) ) (+ ab) ) visszatérési értéke 3. A let parancs helyes szintaxisa (let* ( variables ). Egy script írásakor a sok zárójel alkalmazása zavaró lehet, így az átlátható kód megírásához nyugodtan használhatunk tetszőleges számú szóköz karaktert, mivel ezeket a fordító figyelmen kívül hagyja.
18
A változók értékei műveletek közben megváltozhatnak. Amennyiben egy script alatt változik a deklarált változónk azt a set! paranccsal tudjuk végrehajtatni (12. ábra)
12. ábra
Az ’elsoszam’ változó értékét 10-re állítottuk, majd a set! parancsal új értéket adtunk meg neki melyen a visszatérési értéka az ’elsoszam’ kétszerese vagyis 20. A következő fontos utasítás a define melyel egy általunk készített eljárást hívhatunk meg. Plédául: (define ( (name param-list ) ) expressions) ) Elsőnek a nevét adjuk az eljárásnak, majd a paramétereket és a végén egy sor kifejezés, melyek végrehajtódnak ha hívjuk az eljárást. A car utasítás a listában szereplő első értéket adja vissza, például: (car '("en" 4 "vagyok")) visszatérési értéke: „en”. A cdr utasítás a listában szereplő első érték utáni értékeket adja vissza, például: (cdr '("en" 4 "vagyok")) visszatérés értéke: 4 „ vagyok” (13.ábra)
13. ábra
Ahhoz, hogy egy eljárást a Gimp használni tudjon, regisztrálni kell a program számára, majd egy jegyzettömben megírt scriptet .scm kiterjesztésre kell átnevezni. A regisztráláshoz szükséges paraméterek a script végén helyezkedik el, ahol a scriptünk ablakának beállításait is elvégezhetjük.
19
Az általam létrehozott magikus-gomb scriptem regisztrációs része így néz ki: 1.
(script-fu-register "script-fu-magikus-gomb"
2.
"
/Xtns/gomb script/magikus gomb"
3.
"Zaroszigorlatra keszitve"
4.
"Hosszu Istvan"
5.
"IMKR35,Varpalota"
6.
"2010 Majus"
7.
""
8.
SF-ADJUSTMENT _"a gomb sugara" '(150 1 2000 1 10 0 1)
9.
SF-COLOR
"a gomb szine" '(31 188 15)
Az 1. sorban megtörténik a regisztráció "script-fu-magikus-gomb" néven, majd a 2. sorban megadjuk, hogy ez hol érhető el a programban. (a szűrök menünél). A 3. 4. 5. 6. sorban egyénileg megadható a készítő illetve bármilyen információ. A 8. sorban az általunk regisztrált script ablakában beállítható értékeket adhatjuk meg. Elsőnek egy felirat szerepel, mely a beállított értéknek („a gomb sugara”) a felirata, majd a zárójelben lévő első szám a kezdő alapértelmezett sugár-értéket jelenti. Ezt követi a minimum és a maximum érték megadása, a kis lépték és a nagy lépték beállítása, majd az, hogy egész (0) vagy valós (1) értéket lehessen megadni és végezetül azt határozzuk meg, hogy csúszkával (0) vagy beviteli mezővel (1) lehessen bevinni a kívánt értéket. A 9. sorban ugyancsak a script ablakában a beállítható színt adhatjuk meg. A „gomb szine” felirattal jelezzük a script futtatójának, hogy mit lehet itt beállítani, majd a zárójelben egy előre megadott alapértelmezett szín RGB kódja szerepel.
20
Az alapvető parancsok használatával a paraméterezés is logikus és egyértelműen használható. Egy utasítás rossz paraméterezésére illetve a helytelen használatára a ScriptFu konozl praktikus hibaüzenettel válaszol (14. ábra)
14. ábra
Amennyiben nem vagyunk bizonyosak egyes paraméterek felvehető értékeiben, illetve elfelejtettük az egyes paraméterek jelentését, a Script-Fu-Eljárásböngésző segítségével könnyen utána nézhetünk a helyes megoldásnak (15. ábra). Az eljárásböngésző kereső funkcióját használva a kívánt eljárás leírásához jutunk. Vannak 16-18 paraméterrel dolgozó eljárások, melyeknél különös figyelmet kell fordítanunk a helyes sorrend betartására (16. ábra).
15. ábra
16. ábra
21
Ha mindent jól csináltunk a gimp-image-new eljárás meghívásával létrehoztunk egy képet melyre a konzol egy visszatérési értékkel válaszol. Fontos a szám feljegyzése, ugyanis így tudunk a későbbiekben hivatkozni rá. A 17. ábrán létrehozunk egy új képet (kép azonosítója ID: 36), mely első nem látható, ugyanis egyenlőre a memóriában lett lefoglalva számára terület. Ahhoz, hogy láthassuk egy réteget mindenképp létre kell hozni és hozzá kell adni (gimp-layer-new, gimp-image-add-layer)). Itt már láthatjuk, hogy több paraméter megadása kötelező. A paraméterek sorrendben a követezőek: a létrehozott kép ID-je, a létrehozandó réteg szélessége, magassága, a réteg típusa, a réteg neve, az átlátszatlanság értéke 0 és 100 között, és a mód ahogyan megjelenjen. Miután létrehoztuk a hozzáadásnál ismét a kép ID-re való hivatkozás után a réteg ID-jére is hivatkozni kell (176), majd megadhatjuk, hogy milyen pozícióban legyen. A -1 paraméterrel a kép fölé helyezhetjük.
17. ábra
Most már lehetséges láthatóvá tenni a képet, méghozzá a gimp-display-new eljárás meghívásával. Legtöbbször egy fekete képet láthatunk, mely valójában minden színű. Ha ki akarjuk tölteni például az aktuális előtér színnel, azt a (gimp-drawable-fill 176 BGIMAGE-FILL) parancs segítségével tehetjük meg. Az összes eddigi feladatot egy script-be foglalva a következő kódot kapjuk:
(let* ((image (car (gimp-image-new 200 200 RGB))) (layer (car (gimp-layer-new image 200 200 RGB-IMAGE "elsoreteg" 100 NORMAL-MODE)))) (gimp-drawable-fill layer BG-IMAGE-FILL) (gimp-image-add-layer image layer 0) (gimp-display-new image)).
image)
22
Az általam készített script egy térhatás illúzióját keltő gömböt próbál ábrázolni. Ha ennek megalkotásához az egeret és a gimp hagyományos szerkesztési felületét használnánk körülbelül 5 percet venne igénybe. A script lefutása és a paraméterek megadása 10 másodperc alatt megtörténik. A beállítandó értékeket a fentebb említett script regisztrációs részében tudjuk megadni (18.ábra). Az OK gomb lenyomása után az eredmény pár másodperc múlva megjelenik egy új gimp ablakban 19. ábra)
18. ábra 19. ábra
A script kódja az 1. számú mellékleten látható. Az kód a gömbünk definiálásával kezdjük a göb sugraának (myradius) és a gömb színének (bgcolor) a deklarálásával. A 2. pontban felkérjük a script-fu konzolt, hogy hajtsa végre a zárójelek közötti utasításokat. Az új képnek megadjuk a bekért sugarat és a színbeállítást, majd létrehozunk négy darab réteget. A 9. sortól kezdődnek az egyes rétegek átállítása a kívánt 3D-s hatás eléréséhez. Az itt található vágási, eltolási és blur (homályosság) értékeket a normál szerkesztési módban ellesett értékekre állítjuk, majd véget ér a változók beállítása. A 17 sortól egymás után hozzáadjuk a beállított rétegeket a képhez, majd egyesével minden réteget a beállított változók függvényében egyénileg módosítunk. (a 25. sortól az ’arnyek’ réteget, a 29. sortól a ’szines’ réteget, a 33. sortól a ’fenyes’ réteget, a 36. sortól a ’hhatas’ réteget állítjuk be.). A 43. sorban vágjuk és 3D hatás eléréséhez szükséges pozícióba mozgatjuk a ’fenyes’ réteget. A 48. sorban mozgatjuk és homályosítjuk az ’arnyek’ réteget. Ezután megjelenítjük a kész képet, majd megtisztítjuk a beállított értékektől. Az 55. sortól kezdődik a már fentebb említett script-fu regisztrálás.
23
A kész script elérhetősége és további információk a Súgó menüjén belül az Eljárásböngésző indításával válnak láthatóvá (20. ábra).
20. ábra
A bemutatott script futásán is látható, hogy egy többször visszatérő feladat elvégzését mennyire könnyebbé teszi, ha megírjuk Script-Fu által is értelmezhető eljárás formában. A regisztrációs résznél olyan beállításokat hívhatunk meg, amivel teljesen testre szabhatjuk az elkészülni készülő képünket. A Gimp számára elérhető több száz szűrési funkció használata mellett akár saját magunk is írhatunk szűrőket. Saját fényképeinken alkalmazva egy szempillantás alatt lezajlik a módosítás. Olyan iskolák esetében ahol nagy hangsúlyt helyeznek a képszerkesztési ismeretek elsajátítására, kiváló lehetőséget biztosít a Gimp és a Script-Fu ingyenes és emellett nagyon jó minőségű fejlesztői környezete. Az interneten megtalálható leírások további segítséget nyújtanak azoknak a felhasználóknak , akik komolyan érdeklődnek a téma iránt. Több iskolában a programozás oktatása jelentősen megkönnyíti a Script-Fu eljárások megírását és nem utolsó sorban fejleszti a tanulók programozói sokszínűségét.
24
Irodalomjegyzék The Gimp documentation, http://docs.gimp.org/, utolsó hozzáférés: 2010.05.10
25
Mellékletek 1. számú melléklet 1. (define (script-fu-magikus-gomb myradius bgcolor) 2. 3. 4. 5.
(let* ( (buffer (* myradius 0.2)) (image (car (gimp-image-new (+ buffer myradius) (+ buffer myradius) RGB))) (arnyek-layer (car (gimp-layer-new image myradius myradius RGBA-IMAGE "arnyekLayer" 100 NORMAL-MODE))) 6. (szines-layer (car (gimp-layer-new image myradius myradius RGBA-IMAGE "szinesLayer" 100 NORMAL-MODE))) 7. (hhatas-layer (car (gimp-layer-new image myradius myradius RGBA-IMAGE "hhatasLayer" 100 NORMAL-MODE))) 8. (fenyes-layer (car (gimp-layer-new image myradius myradius RGBA-IMAGE "fenyesLayer" 100 NORMAL-MODE))) 9. (shrink-size (* myradius 0.01)) 10. (fenyes-width (* myradius 0.7)) 11. (fenyes-height (* myradius 0.6)) 12. (offset (- myradius fenyes-width)) 13. (fenyes-x (/ offset 2));(/ (- myradius fenyes-width 2))) 14. (fenyes-y 0) 15. (quarterheight (/ myradius 4)) 16. (blur-radius (* myradius 0.1)) 17. (gimp-image-add-layer image arnyek-layer 0) 18. (gimp-edit-clear arnyek-layer) 19. (gimp-image-add-layer image szines-layer 0) 20. (gimp-edit-clear szines-layer) 21. (gimp-image-add-layer image hhatas-layer 0) 22. (gimp-edit-clear hhatas-layer) 23. (gimp-image-add-layer image fenyes-layer 0) 24. (gimp-edit-clear fenyes-layer)
25. (gimp-ellipse-select image 0 0 myradius myradius 0 TRUE FALSE 0) 26. (gimp-context-set-foreground '(0 0 0)) 27. (gimp-context-set-background '(0 0 0)) 28. (gimp-edit-bucket-fill arnyek-layer 0 0 100 0 FALSE 0 0) 29. (gimp-context-set-background bgcolor) 30. (gimp-context-set-background '(255 255 255))
26
31. (gimp-image-set-active-layer image szines-layer) 32. (gimp-edit-blend szines-layer 0 0 0 100 0 0 FALSE FALSE 0 0 TRUE 0 (- 1(/ myradius 2)) 0 myradius) 33. (gimp-image-set-active-layer image fenyes-layer) 34. (gimp-context-set-foreground '(255 255 255)) 35. (gimp-edit-blend fenyes-layer 2 0 0 100 0 0 FALSE FALSE 0 0 TRUE 0 0 0 myradius ) 36. (gimp-image-set-active-layer image hhatas-layer) 37. (gimp-context-set-foreground '(255 255 255)) 38. (gimp-context-set-background '(255 255 255)) 39. (gimp-edit-bucket-fill hhatas-layer 0 0 100 0 FALSE 0 0) 40. (gimp-selection-grow image shrink-size ) 41. (gimp-selection-feather image (/ myradius 4)) 42. (gimp-edit-cut hhatas-layer)
43. (gimp-image-set-active-layer image fenyes-layer) 44. (gimp-layer-scale fenyes-layer fenyes-width fenyes-height FALSE) 45. (gimp-layer-translate fenyes-layer fenyes-x fenyes-y) 46. (gimp-layer-set-opacity fenyes-layer 75) 47. (gimp-layer-resize-to-image-size fenyes-layer) 48. (gimp-image-set-active-layer image arnyek-layer) 49. (gimp-layer-translate arnyek-layer (/ fenyes-x 4) (/ fenyes-x 4)) 50. (gimp-layer-resize-to-image-size arnyek-layer) 51. (plug-in-gauss-rle 1 image arnyek-layer blur-radius 1 1)
52. (gimp-display-new image) 53. (gimp-displays-flush) 54. (gimp-image-clean-all image) 55. (script-fu-register "script-fu-magikus-gomb" _"/Xtns/gomb script/magikus gomb" "zaroszigra keszitve" "hosszu istvan" "IMKR35,Varpalota" "maj 2010" "" SF-ADJUSTMENT _"a gombr sugara" '(150 1 2000 1 10 0 1) SF-COLOR )
"gomb szine" '(31 188 15)