ImageFX w praktyce (cz. 3.) --------------------------- 1, 2, 3... RAZY AREXX W IMAGEFX W ôrodowisku amigowym funkcjonuje pewne sîowo-wytrych. Mowa oczywiôcie o niezbyt swojsko brzmiâcym terminie ARexx, który poczâtkowo znany nielicznym, zadomowiî sië na dobre wraz z pojawieniem sië w sprzedaûy komputerów Amiga z systemem 2.04. To tu, to tam, moûna usîyszeê lub przeczytaê: "zrobiîem to w ARexxie", "programy komunikujâ sië dziëki ARexxowi" czy "ARexx not present". Tadeusz Talar Wszystko by byîo w porzâdku, gdyby nie fakt, ûe oprócz fizycznej obecnoôci ARexxa na dyskietkach z nowymi wersjami systemu, wîaôciwie nie wiadomo, w jakim celu on sië tam znalazî. Niestety, firma Commodore ze znanych chyba tylko sobie wzglëdów potraktowaîa wszystkich posiadaczy A500+, A600, A1200 i A3000 jako genialnych samouków-hobbystów, którzy sami zgîëbiâ tajniki tego jëzyka (cierpliwie przeszukujâc wszystkie gazety, sieci komputerowe i dyski public domain w poszukiwaniu jakichkolwiek informacji) albo maniakalnych graczy (którym ARexx bëdzie sië kojarzyî z nazwâ hasîa do kolejnego poziomu w ulubionej "strzelanince"), nie dostarczajâc, w komplecie doîâczanych do komputera instrukcji, pozycji traktujâcej o ARexxie, którâ to szczëôliwi posiadacze modeli A4000 otrzymujâ (a i to czasami na przykîad w jëzyku wîoskim). Z marketingowego punktu widzenia trudno oprzeê sië wraûeniu, ûe takie zachowanie bossów wyûej wymienionej firmy byîo niczym innym jak wykonaniem kolejnych ruchów piîâ podcinajâcâ gaîâú, na której sië znajdujâ. Z jednej bowiem strony usuniëto z dyskietek systemowych (zresztâ bardzo sîusznie) ewidentnego "knota", jakim byî Amiga BASIC, równie wspaniaîej, znanej skâdinâd, firmy Microsoft, nie informujâc jednoczeônie w sposób bardzo czytelny, ûe umieszczono w zamian potëûne narzëdzie, jakim jest jëzyk ARexx, a wîaôciwie pakiet niezbëdnych programów i bibliotek standardowych funkcji, umoûliwiajâcych pisanie programów w tym jëzyku. Mówiâc w skrócie, jëzyk ten o skîadni przypominajâcej BASIC z elementami programowania strukturalnego, majâcy duûâ liczbë standardowych funkcji, dziëki multitaskingowi Amigi stanowi integralnâ czëôê systemu operacyjnego i moûe operowaê na wszystkich jego (jak to patetycznie mówiâ nasi "niebiescy" bracia) zasobach systemowych oraz programach posiadajâcych tzw. interfejs ARexxa. Wystarczy tylko uruchomiê program RexxMast, znajdujâcy sië w katalogu System na dysku systemowym, i juû... mamy ARexx. Teraz korzystajâc z dowolnego edytora tekstu, np. ED lub CED, moûna napisaê swój pierwszy program (lepszym okreôleniem jest chyba "makrodefinicja", wiëc w tym artykule bëdë go uûywaî), zapisaê go na dysku, a nastëpnie z poziomu Shella wpisaê RX nazwa, i nasza makrodefinicja (o ile nie zawiera bîëdów) zostanie wykonana. W tym miejscu muszë zaznaczyê, ûe makrodefinicje w ARexxie sâ, ogólnie mówiâc, interpretowane linijka po linijce, stâd nie naleûy porównywaê szybkoôci wykonywania operacji z porównywalnymi programami, napisanymi np. w jëzyku C. Jak pewno zauwaûyliôcie, nie wspomniaîem ani sîowem o tym, co i jak moûna napisaê w naszej makrodefinicji. Odsyîam Was do wszelkich artykuîów i publikacji traktujâcych bezpoôrednio o tym jëzyku, artykuî ten nie stanowi bowiem fragmentu kursu ARexxa. Jego zaîoûeniem jest chëê przybliûenia Czytelnikom praktycznego zastosowania tego jëzyka w poîâczeniu z programem ImageFX. Tak naprawdë prawdziwâ potëgë ARexxa moûemy zobaczyê dopiero w wypadku korzystania z programów majâcych interfejs ARexxa. Na interfejs ten skîada sië, z koniecznoôci upraszczajâc, po pierwsze fakt tworzenia przez program po jego uruchomieniu nazwy portu, z którego moûe korzystaê interpreter ARexxa, przesyîajâc lub otrzymujâc z niego dane, po drugie zaô program dodaje pewnâ liczbë funkcji, których moûna uûywaê wraz ze standardowymi funkcjami ARexxa w pisanych dla tego programu makrodefinicjach. Zdajë sobie sprawë, ûe dla wielu z Was napisane powyûej wiersze mogâ brzmieê nieco enigmatycznie, stâd jak najszybciej przejdë do praktyki. Oczywiôcie na przykîadzie programu ImageFX... ImageFX w szkole Ten przewrotny tytuî nie powinien zbiê nikogo z tropu, pozornie bowiem tylko nie ma nic wspólnego z tematem tego artykuîu. Najpierw chciaîbym przedstawiê bardzo cennâ cechë ImageFX-a, jakâ jest moûliwoôê zapamiëtywania kolejnych czynnoôci, wykonywanych przez nas podczas tworzenia i modyfikacji grafiki za pomocâ tego programu. Zastosowaï tej funkcji jest wiele, ot, choêby czësto powtarzane operacje nie muszâ przyprawiaê nas o zwichniëcie nadgarstka podczas wymachiwania myszkâ i nieustannego klikania, wystarczy raz nauczyê program sekwencji operacji, a nastëpnie nakazaê ImageFX-owi powtórzenie ich, ale juû bez naszych podpowiedzi. Program, jak przystaîo na wzorowego ucznia, powtórzy je z zegarmistrzowskâ precyzjâ, nie opuszczajâc ani jednej operacji. Zabawmy sië wiëc w nauczyciela. Tu maîa uwaga, nasz uczeï (ImageFX) bëdzie notowaî wszystkie polecenia nie w zeszycie, ale, jak przystaîo na "cyfrowego twora", w plikach umieszczanych na dysku (miëkkim albo tym bardziej twardym) i to w swoim narzeczu, czyli jëzyku ARexx, wzbogaconym o wîasne, znane tylko jemu, sîowa. Waûne jest wiëc, by w systemie byî obecny interpreter tego jëzyka. Uruchommy wiëc program RexxMast, a nastëpnie ImageFX. W panelu Toolbox kliknijmy na gadûecie BUFFER i wybierzmy opcjë CREATE. Pojawi sië panel definiujâcy rozmiar tworzonego bufora. Poniewaû z dydaktycznego punktu widzenia pokazane tam parametry bëdâ nam w zupeînoôci wystarczaê, kliknijmy na OKEY i rozpocznijmy lekcjë. Przytrzymujâc klawisz [Shift] wciskamy klawisz [1], rozpoczynajâc proces edukacji naszego ucznia. ImageFX poprosi nas tylko o podanie tematu lekcji w postaci nazwy pliku, do jakiego ma on zapisaê przekazywanâ mu wiedzë. Zalecam dodanie do bazowej nazwy przyrostka ".IFX". Bëdzie on nas informowaî, ûe zadane polecenia zapisane bëdâ w jëzyku zrozumiaîym szczególnie przez naszego ucznia. Próba zmuszenia do powtórzenia zawartych tam informacji, przez innych uczëszczajâcych do szacownej uczelni im. Williama S. Hawesa (twórca amigowej wersji jëzyka Rexx) uczniów (czyt. programów), znajâcych co prawda korzenie jëzyka, ale nie rozumiejâcych jego, specyficznych dla ImageFX-a, zwrotów, z góry skazana jest na niepowodzenie. Istnieje wprawdzie moûliwoôê kontaktu miëdzy naszâ uczniowskâ braciâ, ale o tym nieco póúniej. Wpiszmy wiëc w pole FILE pojawiajâcego sië requestera nazwë, np. FIGURY.IFX, i kliknijmy na OKEY, uruchamiajâc w ten sposób proces uczenia. Za pomocâ "narzëdzi kreôlarskich", udostëpnianych przez ImageFX, narysujmy kilka figur (prostopadîoôciany, okrëgi itp.), z wypeînieniem lub bez, zmieniajâc jednoczeônie kolor kaûdej z figur. Kiedy powyûsza czynnoôê juû sië nam znudzi, kliknijmy na gadûecie okreôlajâcym obszar poddawany obróbce (oznaczony czerwonâ obwódkâ na rys. 1.) i ustawmy go w pozycji BOX. Zaznaczmy fragment, nieúle juû pewnie "zapaêkanego", obrazka i kliknijmy na gadûecie CONVOLVE. Z pojawiajâcego sië panela wybierzmy np. opcjë RELIEFMAP i kliknijmy na OKEY. By jeszcze bardziej skomplikowaê naszâ lekcjë, kliknijmy na gadûecie COLOR, wybierzmy opcjë COLORTOGRAY i kliknijmy na OKEY. Zauwaûcie, ûe pozornie nic podejrzanego sië nie dzieje. Pracujemy sobie w programie ImageFX jakby nigdy nic, ale pamiëtajcie o tym, ûe choê brak jest o tym jakiejkolwiek informacji (jedna z drobnych niedogodnoôci programu), nasz uczeï skwapliwie odnotowuje kaûdy nasz ruch, nawet ten w niewîaôciwâ stronë, jak i skorzystanie choêby z funkcji UNDO. Dalszâ czëôê zajëê pozostawiam Waszej inwencji, moûecie korzystaê z kaûdej funkcji udostëpnianej przez program (np. ingerowaê w kolory opcjâ BALANCE, stosowaê róûne efekty, filtry, generowaê gotowy obrazek, zapisywaê lub odczytywaê obrazki itp.), waûne jest tylko to, by w odpowiedniej chwili poinformowaê o zakoïczeniu zajëê. W tym celu naleûy uûyê kombinacji klawiszy [Shift] i [2]. Uczeï poinformuje o zrozumieniu naszych intencji poprzez wyôwietlenie na ekranie informacji "Macro recording stopped", co w narzeczu uczniowskim znaczy, ûe zdâûyî wszystko zanotowaê. Kliknijmy na OKEY i, z prawdziwie belferskâ przenikliwoôciâ, sprawdúmy, czy tak jest naprawdë. By wyeliminowaê ewentualne szachrajstwa ze strony ImageFX-a, zetrzyjmy brutalnie tablicë, czyli usuïmy wykreowany obrazek, przeîâczajâc gadûet obszaru na FULL i wciskajâc klawisz [k]. Mamy dwie drogi dotarcia do notatek ucznia, pierwsza poprzez klikniëcie na gadûecie AREXX w panelu TOOLBOX, druga zaô to uûycie kolejnej, ale zarazem ostatniej, zwiâzanej z tematem artykuîu, kombinacji klawiszy, czyli [Shift] i [3]. W obydwu wypadkach pojawi sië spis plików, zawierajâcych notatki naszego ucznia, kliknijmy na nazwie tego, w którym powinna byê zapisana treôê ostatniej lekcji, czyli FIGURY.IFX, a nastëpnie na OKEY. Spowoduje to odtworzenie przez ImageFX zawartych w lekcji zapisków i, co jest warte uwagi, ûe choê nic on od siebie nie doda ani nie ujmie, to sumaryczny czas wykonania wszystkich operacji bëdzie znacznie krótszy niû ten, jakiego potrzebowaî jego nauczyciel, czyli Ty, drogi Czytelniku, na uzyskanie takich samych efektów. O tym, ûe w caîâ sprawë mocno zamieszany jest ARexx, informuje wyôwietlany podczas odtwarzania czynnoôci napis "ARexx macro in progress ...". Twórcze lenistwo albo walka z czasem Po rozrywkowym wstëpie nadszedî czas na drugâ odsîonë, widzianâ z diametralnie innego punktu. W tej czëôci artykuîu chciaîbym Wam przedstawiê bardziej zaawansowane wykorzystanie ARexxowych moûliwoôci ImageFX-a. Spróbujmy odczytaê zawartoôê pliku, utworzonego w poprzednim przykîadzie, za pomocâ dowolnego programu (np. More, MultiView, czy choêby edytora tekstu ED lub CED). Po wykonaniu tej czynnoôci moûna zobaczyê, ûe ImageFX zarejestrowaî wszystkie nasze ruchy w postaci kolejnych, znanych mu komend z parametrami. Wîaônie te komendy stanowiâ rozszerzenie ARexxa i mogâ byê mieszane z innymi elementami tego jëzyka. Program oferuje kilkadziesiât takich komend, opisanych szczegóîowo w instrukcji obsîugi. Moûna równieû testowaê dziaîanie danej komendy, poprzez skorzystanie z wbudowanej w ImageFX konsoli, gdzie naleûy jâ wpisaê wraz z wymaganymi parametrami. Upewnijmy sië wiëc, czy na ekranie wyôwietlona jest zawartoôê panelu TOOLBOX. Jeûeli tak, wczytajmy dowolny obrazek z dysku. Nastëpnie wciônijmy klawisz [Esc], co spowoduje otwarcie konsoli. Wpiszmy ReliefMap i wciônijmy klawisz [Enter]. Odpowiada to klikniëciu myszkâ na gadûecie CONVOLVE, a nastëpnie na opcji RELIEF MAP. Spróbujmy jeszcze raz posîuûyê sië konsolâ i wpiszmy Contrast 50. Spowoduje to powstanie efektu równowaûnego klikniëciu na gadûecie BALANCE i przesuniëcie suwaka CONTRAST na wartoôê 50. Jak wiëc widzicie, uûycie konsoli moûe z jednej strony przyspieszyê posîugiwanie sië programem, z drugiej zaô uîatwiê pisanie makrodefinicji poprzez moûliwoôê przetestowania dziaîania poszczególnych komend z okreôlonymi przez uûytkownika parametrami. Warto sië teû zapoznaê z przykîadowymi makrodefinicjami umieszczonymi w katalogu ImageFX:Rexx. Stanowiâ one prawdziwâ "kopalnië" wîaôciwego zastosowania komend. Niestety, ramy tego artykuîu nie pozwalajâ na szczegóîowâ prezentacjë komend ImageFX-a, ale myôlë, ûe nastëpny przykîad przybliûy Wam nieco sposób ich wkomponowania w strukturë jëzyka ARexx i budowë wîasnych makrodefinicji. By naôwietliê tîo kolejnych bojów z tym programem, pozwólcie na maîy osobisty wtrët. Otóû pracujâc w pewnej prywatnej lokalnej stacji telewizyjnej, stanâîem przed nie lada problemem, jak w szybki sposób wygenerowaê tzw. PIP-y do serwisów informacyjnych, emitowanych przez naszâ stacjë. Dla tych z Was, którzy nie sâ zorientowani w temacie, spieszë z informacjâ, ûe owe PIP-y to nic innego, jak maîe obrazki wyôwietlane po lewej albo po prawej stronie spikera podczas zapowiedzi kolejnej informacji. Poniewaû PIP stanowi wzrokowy zwiastun filmowej informacji, zawiera on z reguîy jakiô najbardziej reprezentatywny obrazek, dotyczâcy danego tematu (np. gîowa jakiegoô polityka, fragment mapki terenu, na którym rzecz sië rozgrywa albo fotografië szacownego gmachu), poparty krótkim tekstem dodatkowo sygnalizujâcym sprawë. Zdarza sië, ûe obydwa elementy (w zaleûnoôci od stacji) umieszczone sâ dodatkowo na jakimô tle. Mój problem polegaî na tym, ûe choê generowanie PIP-ów nie naleûy do operacji skomplikowanych (zdigitalizowaê obrazek, zeskalowaê do odpowiednich wymiarów, umieôciê na tle, dopisaê tekst, zapisaê na dysku i nastëpny...), to jednak ma ona dwa zasadnicze mankamenty. Po pierwsze jest operacjâ czasochîonnâ, kaûdego dnia byîo bowiem potrzebnych do serwisów okoîo kilkanaôcie PIP-ów, na dodatek nowe tworzone byîy bezpoôrednio przed serwisem. Poniewaû tzw. zasoby kadrowe w wypadku prywatnych stacji sâ bardzo niewielkie, wykonywanie PIP-ów naleûaîo do jednej z wielu czynnoôci, którymi obarczony byî realizator serwisu informacyjnego, i mógî nabawiê sië nerwowego "tiku" od spoglâdania na zegarek i wiecznych pytaï "Czy zdâûë?". Po drugie ile razy moûna robiê to samo, codziennie kilkanaôcie, w tygodniu kilkadziesiât, w miesiâcu ... itd. Moûna przecieû caîkiem wytrzeê îapki myszki, nie mówiâc o kîopotach ze wspomnianym juû nadgarstkiem. Dochodzi jeszcze trzeci mankament, zwiâzany z tym, ûe o ile realizator musi biegle znaê sië na sprzëcie telewizyjnym (wizyjnym czy dúwiëkowym), o tyle w wypadku znajomoôci oprogramowania graficznego tak nie jest. Stâd, by ulûyê nieco moim kolegom w walce z czasem, a z siebie zrzuciê widmo wykonywania jednostajnych czynnoôci, postanowiîem znaleúê wîaôciwe rozwiâzanie. Z pomocâ przyszedî mi, oczywiôcie, ImageFX wsparty jëzykiem ARexx. Postanowiîem napisaê makrodefinicjë, odzwierciedlajâcâ przyjëty przeze mnie algorytm tworzenia PIP-ów, tzn.: 1. Wczytaê z dysku przygotowany obrazek z tîem dla PIP-u (utworzonego wczeôniej za pomocâ dowolnego programu malarskiego, np. DPainta lub samego ImageFX-a, przykîad -- patrz rys. 2.). 2. Wczytaê jako Brush z dysku, z katalogu Work:Obrazki, obrazek przeznaczony do konwersji na PIP-a. 3. Zeskalowaê go do odpowiednich rozmiarów i umieôciê w odpowiednim miejscu na tle. 4. Przetworzyê nazwë pliku obrazka na tekst, wygenerowaê go przy uûyciu czcionki CGTimesItalic, zeskalowaê, i umieôciê w odpowiednim miejscu na tle. 5. Wygenerowaê gotowy obrazek z PIP-em i zapisaê go na dysku w katalogu Work:PIPy, w pliku z dodanym przyrostkiem ".PIP". 6. Sprawdziê, czy jest nastëpny obrazek w katalogu Work:Obrazki. Jeûeli tak, to powtórzyê kroki od 1 do 6, jeûeli nie, to zakoïczyê dziaîanie makrodefinicji. Za pomocâ popularnego edytora CED napisaîem odpowiedniâ mieszankë komend ImageFX-a i ARexxa, którâ przedstawia listing 1. W ten sposób mój problem poszedî w niepamiëê i obecnie po zdigitalizowaniu, wskanowaniu lub narysowaniu odpowiednich obrazków uruchamiam udoskonalonâ jeszcze nieco makrodefinicjë i mogë sië zajâê innymi sprawami, a ImageFX wykonuje caîâ "czarnâ robotë". Gdy jâ skoïczy, gotowe obrazki z PIP-ami trafiajâ do odpowiednio przygotowanego skryptu w Scali, ale o tym, w jaki sposób, to juû przy innej okazji. Przykîad poîâczenia poprzez genlock PIP-ów z "ûywym" obrazem wideo pokazuje rys. 3. W tym miejscu muszë zwróciê Waszâ uwagë na to, iû parametry liczbowe, zaîâczone w listingu 1., odpowiadajâ rozmiarowi lo-res obrazka, stanowiâcego podkîad z tîem dla PIP-u, poniewaû makrodefinicja ta jest tylko przykîadem do wypróbowania nawet przez tych z Was, którzy nie dysponujâ duûâ liczbâ MB pamiëci RAM. W uûywanej przeze mnie roboczej wersji wyjôciowe obrazki z PIP-ami sâ w trybie super hi-res laced. Innâ sprawâ jest przyjëta konwencja nazewnictwa plików z obrazkami przeznaczonymi do obróbki. Otóû zamiast spacji pomiëdzy wyrazami wprowadzamy znak "_". Makrodefinicja automatycznie zamienia te znaki na spacje, stâd nazwa np. "Dziô_w_kraju" na wyjôciowym PIP-ie ma poprawny wyglâd, tzn. "Dziô w kraju", a plik zawierajâcy PIP bëdzie miaî nazwë "Dziô_w_kraju.PIP". "Nobody's perfect", czyli rzecz o protezach Jak dotâd nie napisano idealnego programu, kaûdy ma jakieô mniejsze lub wiëksze bîëdy albo po prostu "niedoróbki". ImageFX 1.5 jest zasadniczo wolny od powaûniejszych mankamentów, ale i w jego wypadku nie udaîo sië autorom ustrzec kilku doôê istotnych potkniëê. Szczególnie jedno daîo mi sië mocno we znaki. Spróbujcie bowiem wprowadziê do tworzonego obrazka jakikolwiek tekst pisany skalowalnâ czcionkâ, nie wiem jak Wam, ale mnie to sië nie udaîo. Klikamy w pasku "narzëdzi" panelu Toolbox na ikonie sîuûâcej do wprowadzania tekstu (to ta oznaczona literami ABC), nastëpnie w pojawiajâcym sië panelu (patrz rys. 4.) do pola oznaczonego ûóîtâ obwódkâ wprowadzamy potrzebny tekst, klikamy na gadûecie CHOOSE FONT i ... stajemy przed dylematem, co zrobiê dalej. Normalnie, w tym momencie naleûy najpierw kliknâê na katalogu o takiej nazwie jak czcionka, którâ chcemy wybraê, a nastëpnie na pliku zawierajâcym odpowiedni rozmiar danej czcionki, np. najpierw na katalogu Times, a nastëpnie na pliku o nazwie 24. Jak wiecie (lub nie), próba odnalezienia katalogu o nazwie czcionki wektorowej jest skazana z góry na niepowodzenie, poniewaû czcionki te nie majâ ustalonych z góry plików z odpowiednimi rozmiarami i standardowo sâ skalowane na podstawie danych, zapisanych w pliku definicji czcionki, umieszczonym w katalogu "FONTS:_bullets_outlines", chyba ûe przetworzyliômy je na postaê bitmapowâ, korzystajâc z programu Intellifont lub Fountain. Natomiast klikniëcie bezpoôrednio na nazwie pliku definicji czcionki w wymienionym wyûej katalogu nie wywoîuje poûâdanego efektu w postaci wczytania wskazanej czcionki. Po za tym nowe systemy operacyjne Amigi umoûliwiajâ skalowanie nie tylko czcionek wektorowych, ale i bitmapowych, stâd normalnie (tzn. w programach bezpoôrednio wykorzystujâcych të cechë systemu) moûemy uûywaê np. czcionki Topaz w wymiarze 145, i znieksztaîcona, bo znieksztaîcona, w wyniku prostego powiëkszania pikseli, ale wîaônie taka pojawi sië na ekranie. Cóû wiëc zrobiê? Czyûby ten ôwietny program ograniczaî nas jedynie do czcionek bitmapowych w z góry ustalonych wymiarach, jak za czasów systemu 1.3 i zarazem w momencie gdy jego gîówny rywal, ADPro, moûe robiê z obydwoma rodzajami czcionek, co sobie tylko zaûyczymy? Juû pobieûne wejrzenie w zawartoôê plików, umieszczonych w katalogu "ImageFX:Rexx", utwierdziîo mnie w przekonaniu, ûe nie jest tak úle. Na wîaôciwy ôlad naprowadziîa mnie doîâczona w pakiecie makrodefinicja o nazwie TITLE.IFX. Okazaîo sië bowiem, ûe ImageFX oferuje duûo wiëksze moûliwoôci operowania czcionkami, ale wyîâcznie "z poziomu" ARexxa. Wygenerowanie tekstu jest moûliwe dziëki wewnëtrznej komendzie programu: Text CZCIONKA ROZMIAR [PROPORCJA] [ITALIC] [BOLD] [UNDERLINE] TEKST gdzie CZCIONKA -- oznacza nazwë zbioru czcionki o rozszerzeniu ".font" wraz z peînâ ôcieûkâ dostëpu, np. FONTS:CGTimes.font; ROZMIAR -- oznacza rozmiar czcionki w punktach; PROPORCJA -- oznacza procentowy stosunek szerokoôci znaku do jego standardowej szerokoôci, np. wpisanie wartoôci 50 oznacza, ûe po przeskalowaniu tekstu szerokoôê kaûdego znaku bëdzie stanowiê 50% standardowej szerokoôci znaku wystëpujâcej dla danej wartoôci, wprowadzonej jako ROZMIAR; ITALIC, BOLD, UNDERLINE -- opcjonalne dodanie atrybutów czcionce, odpowiednio -- pochylenie, pogrubienie i podkreôlenie; TEKST -- napis, który chcemy wygenerowaê przy uûyciu powyûszych parametrów. Wypróbujmy dziaîanie tej instrukcji. Stwórzmy dowolny bufor poprzez klikniëcie na gadûecie BUFFER w panelu TOOLBOX, nastëpnie wybierzmy opcjë CREATE BUFFER... i, nie zastanawiajâc sië zbytnio, kliknijmy na OK. Wciônijmy klawisz [Esc], by otworzyê konsolë sîuûâcâ do wprowadzania komend ImageFX-a, i wpiszmy: Text FONTS:Topaz.font 60 50 BOLD Arexx w ImageFX a nastëpnie wciônijmy klawisz [Enter]. Wciônijmy jeszcze raz Enter, by opuôciê konsolë. Jeûeli wszystko jest w porzâdku, to w tym momencie powinniômy ujrzeê "podczepiony" do wskaúnika myszki napis. Zauwaûcie, ûe jest to przeskalowany wg zadeklarowanych parametrów (rozmiar 60, szerokoôê znaku równa 50% standardowej szerokoôci dla danego rozmiaru, czcionka pogrubiona -- BOLD) napis czcionkâ topaz, która, choê bitmapowa, zostaîa przeskalowana do zadanego wymiaru. Niestety, koïcowy efekt dziedziczy niedogodnoôci zwiâzane z uûywaniem tego typu czcionek w operacji skalowania. Nie wyglâdajâ one najlepiej (zwîaszcza w wypadku duûych rozmiarów), majâ "schodki", ale w niektórych wypadkach moûe to byê bardzo przydatne. Spieszë powiadomiê wszystkich tych, którzy potrzebujâ lepiej wyglâdajâcych napisów, iû nie stojâ na straconej pozycji. Moûna bowiem w komendzie Text podaê nazwë czcionki wektorowej, oczywiôcie w "zadomowionym" w nowych systemach operacyjnych Amigi standardzie AGFA Compugraphic lub, jak kto woli, Intellifont. Poniewaû instalacja tych czcionek powoduje utworzenie w katalogu FONTS: plików z przyrostkiem ".font", to sposób ich uûycia bëdzie identyczny z opisanym powyûej, np.: Text FONTS:CGTimes.font 60 50 Arexx w ImageFX W tym wypadku ImageFX na podstawie pliku definicji czcionki, znajdujâcego sië w katalogu "FONTS:_bullets_outlines", wygeneruje napis, który bëdzie wyglâdaî jednak znacznie lepiej. Jak wiëc widzicie, to co nie jest bezpoôrednio moûliwe z poziomu interfejsu uûytkownika ImageFX-a, moûe byê dostëpne, ale przy wykorzystaniu wewnëtrznych komend tego programu. Na marginesie naleûy zaznaczyê, iû w nowej wersji programu -- 2.0, która powinna byê juû w sprzedaûy w momencie, gdy czytacie te sîowa, sprawa wprowadzania napisów zostaîa caîkowicie rozwiâzana poprzez znaczne poprawienie panelu wprowadzania tekstu, nadal jednak opcja zmiany proporcji znaku jest dostëpna tylko z poziomu ARexxa. Póki co, wykorzystujâc komendy ImageFX-a, wymieszane z instrukcjami ARexxa, moûemy przyrzâdziê kolejny "koktajl", który stanowiê bëdzie niezîe antidotum na nasze dîonie, wymëczone wspomnianym wyûej "wpalcowywaniem" napisów. W peîni dziaîajâcy przykîad, bëdâcy makrodefinicjâ dla ImageFX-a, przedstawia listing 2. Moûe on stanowiê bazë dla Waszych wîasnych eksperymentów i byê jednoczeônie inspiracjâ do tworzenia innych "protez", uîatwiajâcych wykorzystanie tego programu. Efekt dziaîania tej makrodefinicji przedstawia rys. 5. Jak widzicie, ImageFX, wsparty ARexxem, jest bardzo elastycznym narzëdziem, mogâcym pomóc w sytuacjach, w których zawodzi korzystanie z klasycznego "oblicza" tego programu, czyli jego interfejsu uûytkownika. Bogactwo moûliwoôci jest tak duûe, ûe nie sposób opisaê je w szczegóîach na îamach tego artykuîu. Dlatego zachëcam do eksperymentów i dokîadnego zapoznania sië z zaîâczonymi do programu przykîadowymi makrodefinicjami ARexxowymi. Myôlë, ûe zauwaûycie, tak jak i ja, iû gwiazda ImageFX-a zaôwieci jeszcze jaôniejszym blaskiem. W artykule wykorzystano fragmenty PANORAMY nadawanej w programie 2. TVP 13 grudnia 1994 roku o godz. 0.05.