"ZAKRESEM" GO! Niezbëdnym "wyposaûeniem" kaûdego znanego programu graficznego jest moûliwoôê definiowania i operowania ciâgami kolorów. Okreôlajâca je, swojsko brzmiâca, angielska nazwa RANGES jak dotâd nie znalazîa trwaîego polskiego odpowiednika, dlatego teû pozwólcie, ûe w tym artykule bëdë uûywaî najbardziej zbliûonego, czyli tytuîowego ZAKRESU. Zakresy moûna spotkaê wîaôciwie w kaûdym liczâcym sië programie graficznym dla Amigi, jednak w wiëkszoôci wypadków sposób ich wykorzystania nie róûni sië zasadniczo. Tadeusz Talar Jednym z programów, które znacznie odbiegajâ od tej "szaroôci" zastosowaï, jest ImageFX. Oprócz "klasycznych" operacji z zakresami, dostëpne sâ w nim równieû takie, których próûno szukaê w innych aplikacjach. Zanim jednak przedstawië przykîady, kilka zdaï o definiowaniu zakresów w ImageFX. Po uruchomieniu programu warto od razu przejôê do panelu operacji na palecie kolorów, czyli kliknâê na duûym gadûecie PALETTE, gdyû to wîaônie tam (patrz rys. 1.) moûemy okreôliê sekwencje kolorów, stanowiâcych zakresy. Piszë w liczbie mnogiej, poniewaû ImageFX udostëpnia moûliwoôê tworzenia 8 zakresów. Procedura tworzenia jest prosta. Wystarczy zmieniê ustawienie gadûetu wyboru zakresu (rys. 1., ûóîty obrys) z poîoûenia ALL na dowolny zakres, który chcemy wybraê, nastëpnie kliknâê na pierwszym kolorze w palecie kolorów, który bëdzie stanowiî poczâtek zakresu, kliknâê na RANGE, wskazaê kolor, jaki ma byê ostatnim w zakresie. Program "oznaczy" zdefiniowany zakres za pomocâ krótkich kresek w ôrodku kaûdego koloru zakresu. W ten sposób moûemy zdefiniowaê wszystkie 8 zakresów. Niestety, jak widzicie, zakres mogâ stanowiê tylko kolory wystëpujâce po sobie w palecie kolorów, dlatego teû w celu umieszczenia wybranych barw na wîaôciwych pozycjach palety naleûy skorzystaê ze znajdujâcych sië w panelu PALETTE gadûetów COPY i SWAP. Bardzo przydatny jest teû gadûet SPREAD, umoûliwiajâcy tworzenie poôrednich kolorów pomiëdzy wskazanymi barwami, oraz SORT, porzâdkujâcy kolory w wybranym zakresie (lub w wypadku ustawienia gadûetu wyboru zakresu na ALL -- wszystkie kolory palety) w kolejnoôci od najjaôniejszego do najciemniejszego lub vice versa. Program umoûliwia równieû "zablokowanie" kolorów, stanowiâcych zakres lub caîâ paletë, po klikniëciu na LOCK. Gadûet ten zmienia wtedy swój stan na UNLOCK, co oznacza, ûe powtórne klikniëcie na nim powoduje "odblokowanie" kolorów danego zakresu lub caîej palety. Odpowiedú na pytanie, "do czego moûe sië nam to przydaê?", znajdziecie w dalszej czëôci tego artykuîu... I to tyle tytuîem wstëpu. Czas na praktyczne spojrzenie na zastosowanie zakresów w programie ImageFX. Na poczâtek Klasyka, czyli "Gradient Fill" Moûliwoôê wypeîniania obszaru obrazka "îagodnym przejôciem" pomiëdzy wybranymi kolorami, czyli po prostu GRADIENT FILL, jest opcjâ powszechnie spotykanâ w programach graficznych. Sposób jej realizacji w programie ImageFX nie róûni sië zasadniczo od rozwiâzaï przyjëtych w takich programach, jak Brillance, DPaint czy Personal Paint. Wystarczy zdefiniowaê zakres, np. R1, wcisnâê klawisz [F7], co spowoduje wyôwietlenie panelu, sîuûâcego do definiowania parametrów wypeînienia (rys. 2.), i wybraê odpowiedni rodzaj TYPE: (rys. 2., czerwony obrys) wykorzystujâcy zakres, oraz ustawiê gadûet obok RANGE: na nazwë uûywanego przy wypeînianiu zakresu, tzn. w naszym wypadku R1. Nastëpnie trzeba wybraê odpowiednie "narzëdzie malarskie" w panelu TOOLBOX, np. wypeîniony prostokât, i spróbowaê go namalowaê na obrazku. Warto w tym miejscu zaznaczyê, ûe o ostatecznym wyglâdzie wypeînienia GRADIENT FILL bëdâ decydowaê odpowiednie ustawienia gadûetów SMOOTH, SKEW i ROUGHNESS, tak jak to widaê na rys. 3. W ImageFX, pomimo zasadniczego podobieïstwa tworzenia wypeînieï typu GRADIENT FILL do innych, popularnych, programów malarskich dla Amigi, wystëpujâ takûe i róûnice. Po pierwsze brak jest moûliwoôci "rotowania" kolorów, stanowiâcych zakres, czyli popularnego COLOR CYCLING. Po drugie zaô, dziëki bardzo efektywnej opcji SMOOTH zakres mogâ stanowiê jedynie dwa kolory, a i tak na gotowym wypeînieniu efektem bëdzie îagodne "przejôcie" od jednego koloru do drugiego poprzez wartoôci poôrednie. Na marginesie wypeînieï GRADIENT FILL w programie ImageFX nasuwa mi sië jeszcze jedna maîa, ale przykra, uwaga. Otóû w porównaniu z wypeînieniami tego typu, tworzonymi za pomoca konkurenta, programu ADPro, wyglâdajâ one znacznie gorzej. Zakres a'la "Stencil" Z pewnoôciâ wielokrotnie stykaliôcie sië w róûnych programach graficznych z opcjâ STENCIL. Dziaîanie jej, w skrócie mówiâc, polega na tym, ûe po wskazaniu odpowiednich kolorów, te punkty obrazka, które je majâ w trakcie edycji, pozostanâ nie zmienione. Pozwala to na bardzo selektywnâ obróbkë, bez obawy o naruszenie kolorów punktów, na których zachowaniu nam zaleûy. Jak dziaîa w praktyce STENCIL w popularnym DPaincie, moûecie sië przekonaê choêby z jednego z artykuîów cyklu, poôwiëconego temu programowi, autorstwa S. Wësîawskiego. Chciaîbym przedstawiê realizacjë tej idei w ImageFX. W programie tym uûywane sâ w tym celu zakresy oraz opcja wîâczania lub wyîâczania z edycji punktów o kolorach stanowiâcych dany zakres, o doôê przewrotnej nazwie TRANSPARENCY. Spójrzcie na rys. 4., który pokazuje sposób uûycia zakresów a'la STENCIL. Na caîej powierzchni oryginalnego rysunku, skîadajâcego sië z wielokolorowych prostokâtów, narysowaîem, przy odpowiednio ustawionej opcji TRANSPARENCY, czarny prostokât (oczywiôcie rysunek moûe byê bardziej skomplikowany, ale dla potrzeb tego przykîadu jest, jaki jest). W normalnych warunkach, tzn. bez modyfikacji TRANSPARENCY, powinien on "przykryê" wszystkie prostokâty, jednak ja chciaîem poeksperymentowaê nieco z fragmentami o kolorach fioletowym i jasnoniebieskim. W tym celu kliknâîem najpierw na gadûecie PALETTE, by "przejôê" do panelu definicji palety, kliknâîem na pierwszej lepszej pozycji palety, nastëpnie wybraîem PICK i wskazaîem na rysunku pierwszy interesujâcy prostokât, co spowodowaîo, ûe jego kolor, tzn. fioletowy, ImageFX umieôciî w wybranym miejscu palety. Nastëpnie kliknâîem na nastëpnej pozycji w palecie, znowu wybraîem PICK i tym razem na rysunku wskazaîem prostokât o kolorze jasnoniebieskim. Majâc w palecie obok siebie dwa interesujâce mnie kolory, utworzyîem z nich zakres R1. Na poczâtku chciaîem, by rysowany czarny kwadrat "nie uszkodziî" kolorów innych niû te dwa wybrane przeze mnie. Kliknâîem wiëc na gadûecie TOOLBOX i w panelu tym, poniewaû na co dzieï uûywam wersji 1.5 ImageFX-a, wybraîem gadûet COMPOSITE, bo wîaônie tam moûna zdefiniowaê opcjë TRANSPARENCY. Szczëôliwi posiadacze ImageFX-a 2.0 powinni kliknâê na gadûecie, pokazanym na rys. 4. (PEN MENU). W opcji TRANSPARENCY "wîâczyîem" do dalszej edycji tylko kolory z zakresu R1, ustawiajâc odpowiednio gadûet obok napisu INCLUDE:, natomiast EXCLUDE: pozostawiîem bez zmian, tzn. w pozycji NONE. Teraz wybraîem kolor czarny i narysowaîem wypeîniony prostokât na prostokâtach. Jak widzicie, zmianie na kolor czarny ulegîy jedynie te fragmenty rysunku, które miaîy jeden z kolorów zakresu R1. Kolejnâ próbâ byîo sprawdzenie sytuacji odwrotnej, czyli pozostawienie "nie tkniëtymi" fragmentów obrazka o kolorach innych niû fioletowy i jasnoniebieski. Wcisnâîem wiëc klawisz [u] (Undo), zmodyfikowaîem ustawienia TRANSPARENCY tak, jak widzicie to na rys. 4. (INCLUDE: ALL, EXCLUDE: R1), i znowu narysowaîem czarny prostokât, przykrywajâcy zawartoôê rysunku. I jak sië mogîem tego spodziewaê, "nie przykryî" on jedynie tych fragmentów rysunku, które miaîy kolor z zakresu R1. Mam nadziejë, ûe powyûszy, proôciutki, przykîad, zachëci Was do innych eksperymentów z TRANSPARENCY (z innymi ustawieniami lub w poîâczeniu z innymi trybami rysowania), ale zanim przejdë do kolejnego tematu, jakim bëdzie uûycie odnoszâcego sië do zakresów, znajdujâcego sië w panelu PALETTE, gadûetu LOCK, kilka sîów o interesujâcym Was zapewne "suwaczku" CLOSENESS. Ustawienie tego gadûetu okreôla bowiem "czuîoôê" opcji TRANSPARENCY, to znaczy, jak bardzo opcja ta ma wpîywaê na kolory zbliûone do tych znajdujâcych sië w zakresach. Im wyûsza jest wartoôê, tym wiëcej punktów o kolorach zbliûonych do zawartoôci zakresów bëdzie odpowiednio wîâczanych lub wyîâczanych opcjâ TRANSPARENCY. W wypadku ustawienia CLOSENESS na 1, tylko punkty o kolorach z zakresów bëdâ modyfikowane. Spróbujcie poeksperymentowaê, a przekonacie sië, jak zaskakujâce rezultaty mogâ przynieôê róûne ustawienia CLOSENESS. Po co ten "Lock"? ****** to, co jest w >...<, proszë wyboldowaê ********** >I. Dla genlocka.< Umiejëtne operowanie opcjami, zawartymi w panelu Palette, pozwala na îatwe przystosowanie dowolnego obrazka do zastosowaï wideo. Jak wiecie, Amiga pozwala na stosunkowo proste poîâczenie naszej komputerowej twórczoôci z "ûywym" obrazem wideo. Naleûy jedynie wyposaûyê sië w genlock. Niestety, w wiëkszoôci popularnych rozwiâzaï tych urzâdzeï musimy pamiëtaê o tym, ûe "przezroczyste" dla obrazu z np. magnetowidu bëdâ jedynie te fragmenty obrazka komputerowego, które majâ pierwszy kolor umieszczony w palecie kolorów, tzw. kolor 0. Dlatego, jeûeli chcecie uniknâê przykrego efektu "przeôwitywania" obrazu z magnetowidu przez aktualnie wyôwietlany obrazek, musicie zadbaê o to, by dany obrazek nie zawieraî ani jednego punktu o tym wîaônie kolorze. Na poniûszym przykîadzie postaram sië zademonstrowaê, jak to moûna zrobiê. Przypuôêmy, ûe wîaônie tworzymy efektownâ czoîówkë kasety, zawierajâcej rejestracjë ôlubu, i chcemy na wstëpie umieôciê zeskanowane zdjëcia païstwa mîodych. Niestety, po utworzeniu odpowiedniego skryptu w Scali stwierdzamy, ûe po "naîoûeniu" ich na tîo, stanowiâce piëkne ujëcia budynku USC i koôcioîa, poszczególne postacie "przepuszczajâ" je niczym sito. By tej sytuacji zaradziê, skorzystajmy z ImageFX-a. Wczytajmy obrazek panny mîodej. Teraz kliknijmy na gadûecie PALETTE, a nastëpnie na gadûecie RENDER. Spowoduje to wygenerowanie przez program palety, zawierajâcej 256 kolorów, które wystëpujâ w obrazku. By sië przekonaê o tym, jak one wyglâdajâ, kliknijcie na gadûecie cyklicznym, sîuûâcym do wyboru aktualnie wyôwietlanej palety kolorów (rys. 1., czerwony obrys), ustawcie go w pozycji Rend i za pomocâ "strzaîki w górë" (rys. 1., zielony obrys) wyôwietlcie wszystkie kolory. Nastëpnie kliknijmy na pierwszym kolorze w palecie (kolor 0 -- w lewym górnym rogu palety kolorów) i po przyjrzeniu sië dokîadnie pozostaîym kolorom ustawmy za pomocâ "suwaków" kolor, który NIE WYSTËPUJE w poprawianym obrazku. Nie jest istotne, jaki on bëdzie (moûe to byê np. czysty kolor niebieski, tzn. suwak B, ustawiony na 255, a pozostaîe na 0, lub ûóîty -- R 255, G 255, B 0), gdyû w koïcowym efekcie stanie sië on "przezroczysty" dla obrazu wideo. Po dokonaniu modyfikacji kliknijmy na gadûecie, sîuûâcym do wyboru zakresu (rys. 1., ûóîty obrys), i wybierzmy dowolny zakres (np. R1). Teraz kliknijmy na gadûecie RANGE, nastëpnie na zmienionym poprzednio kolorze 0 (spowoduje to oczywiôcie utworzenie zakresu, skîadajâcego sië tylko z jednego koloru -- koloru 0) i "zablokujmy" ten zakres przez klikniëcie na gadûecie LOCK (zmieni on swój stan na UNLOCK). Powyûsze operacje spowodujâ, ûe w momencie kolejnego wygenerowania obrazka, opcjâ RENDER w panelu RENDER, ImageFX utworzy wyjôciowy obrazek o zaîoûonych przez nas parametrach (tzn. wymiarach i liczbie kolorów), którego poszczególne kolory bëdâ umieszczone w nowo wygenerowanej przez program palecie od pozycji 1 do ustawionej liczby kolorów. Kolor ustawiony w pozycji 0, pomimo tego ûe nie wystëpuje w obrazku, nie zostanie zmieniony, poniewaû jest "zablokowany". Wystarczy teraz zapisaê tak poprawiony obrazek panny mîodej na dysk i w Scali porównaê go z wizerunkiem pana mîodego. Róûnica powinna byê widoczna goîym okiem. W opisany powyûej sposób moûemy zmieniaê, a nastëpnie "blokowaê" za pomocâ LOCK wiëkszâ liczbë kolorów, np. wtedy, gdy chcemy, by paleta zawieraîa kolory, w których chcemy doîâczyê do obrazka napisy w Scali, a które istotnie róûniâ sië od kolorów obrazka. W kaûdym wypadku muszâ one stanowiê odpowiednio zdefiniowany zakres (czyli naleûy modyfikowaê kolejne pozycje palety kolorów), w wypadku przeznaczenia obrazka do nakîadania na obraz wideo zakres ten powinien sië koniecznie rozpoczynaê od pozycji 0. >II. Dla Workbencha< Innym przykîadem zastosowania "blokowania" zakresu moûe byê tworzenie wîasnego tîa, które stanowi wypeînienie poszczególnych elementów Workbencha, tzn. ekranu (Screen), okna Workbencha (Workbench) i okien (Windows). Dla nieco starszych "przyjacióîek" istnieje kilka programów public domain, realizujâcych të funkcjë, natomiast nowe systemy operacyjne Amigi umoûliwiajâ umieszczenie w nich (za pomocâ znajdujâcego sië w katalogu Prefs programu WBPattern) odpowiedniego wzoru lub obrazka (rys. 5.). Czësto jednak operacja takiego "upiëkszania" nastrëcza trochë kîopotów. Zazwyczaj bowiem Amiga niezbyt dobrze radzi sobie z poprawnym "dopasowaniem" kolorów obrazka (ang. remapping) do zdefiniowanej, istniejâcej w systemie, palety kolorów. Moûna, co prawda, ustawiê wiëkszâ liczbë kolorów, w jakich pracuje Workbench, i przeîâczyê systemowâ paletë (umieszczonym we wspomnianym katalogu Prefs programie Palette) ze standardowej (4-kolorowej) na paletë wielokolorowâ, ale nie mamy gwarancji, czy efekt bëdzie poprawny, ponadto zwiëkszona liczba kolorów spowolni pracë oraz zabierze cenne kilobajty pamiëci. Czësto optymalnym rozwiâzaniem byîoby utworzenie obrazka, zawierajâcego takâ paletë barw i liczbë kolorów, jaka znajduje sië w uûywanym przez nas Workbenchu. Ponadto mamy wtedy gwarancjë, ûe wykorzystany jako tîo obrazek nie spowoduje zmiany koloru ikon. Rozwiâzaï tego problemu jest wiele. Jeûeli jednak dysponujecie ImageFX-em, proponujë poniûszy sposób. Z pewnoôciâ wiëkszoôê z Was (ja takûe) uûywa standardowych ustawieï Workbencha (tzn. 4 kolory i rozmiar 640 x 256 punktów), dlatego, jeûeli nie zaleûy Wam na wiëkszej liczbie kolorów, spróbujmy dostosowaê obrazek do tych parametrów. Po uruchomieniu ImageFX-a klikamy na gadûecie PALETTE i przeîâczamy aktualnie wyôwietlanâ paletë, w sposób opisany w poprzednim przykîadzie, na REND. Kolejnâ czynnoôciâ jest klikniëcie na gadûecie GRAB. Opcjâ tâ moûemy "zîapaê" dowolnâ paletë istniejâcego w systemie ekranu. Z wyôwietlonej listy naleûy wybraê WORKBENCH SCREEN (Uwaga! Jeôli go brak, naleûy sprawdziê, po klikniëciu na gadûecie PREFS, czy przypadkiem nie ma ustawionego "ptaszka" na CLOSE WORKBENCH i jeôli jest, naleûy go usunâê.) Program umieôci w pierwszych czterech pozycjach palety REND paletë Workbencha (tu nastëpna uwaga, jeûeli ten przykîad wykonujecie bezpoôrednio po przykîadzie zaprezentowanym wczeôniej, pamiëtajcie o "odblokowaniu" zakresu, tzn. sprawdúcie, czy dla kaûdego zakresu gadûet "blokowania" jest w pozycji LOCK, co, przypominam, oznacza stan "odblokowania"). Kolejnâ czynnoôciâ jest zdefiniowanie zakresu, skîadajâcego sië ze "zîapanych" kolorów. Wybieramy wiëc, w sposób opisany poprzednio, odpowiedni numer zakresu, klikamy na pierwszym kolorze (kolor 0), nastëpnie na gadûecie RANGE i na kolorze czwartym (kolor 3). Tak okreôlony zakres "blokujemy", ustawiajâc gadûet LOCK w pozycjë UNLOCK. Nastëpnie wczytujemy obrazek, który ma znaleúê zastosowanie w Workbenchu. Poniewaû niekoniecznie musi on mieê odpowiednie rozmiary, to za pomocâ opcji SCALE w panelu TOOLBOX dostosowujemy go do rozmiarów ekranu Workbencha, tzn. w naszym przykîadzie 640 x 256 punktów. Teraz wystarczy wygenerowaê nasz obrazek, przechodzâc do panelu RENDER i ustawiajâc tryb na PAL: hi-res, liczbë kolorów na 4 oraz, by zachowaê bardziej naturalny wyglâd obrazka (któremu "obcinamy" zapewne sporâ liczbë kolorów), warto ustawiê jeden z algorytmów ditheringu (z praktyki wiem, ûe najlepiej wypada wybór algorytmu FloydR lub EDD). Tak utworzony obrazek wystarczy zapisaê na dysk, najlepiej do katalogu SYS: Prefs/Presets, i wczytaê na nasz Workbench (patrz rys. 6.) przy uûyciu wspomnianego WBPattern. W opisany sposób moûna takûe dostosowywaê obrazki, przeznaczone do wykorzystania w MagicWB.