home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
ma_1995
/
03
/
ami021.txt
< prev
next >
Wrap
Text File
|
1997-04-06
|
23KB
|
483 lines
ImageFX w praktyce (cz. 3.)
---------------------------
1, 2, 3... RAZY AREXX W IMAGEFX
<lead>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".
<a>Tadeusz Talar
<txt> 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...
<sr>ImageFX w szkole
<txt>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 ...".
<sr>Twórcze lenistwo albo walka z czasem
<txt>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".
<sr>"Nobody's perfect", czyli rzecz o protezach
<txt>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:
<l>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:
<l>Text FONTS:Topaz.font 60 50 BOLD Arexx w ImageFX
<txt>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.:
<l>Text FONTS:CGTimes.font 60 50 Arexx w ImageFX
<txt>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.
<przyp> W artykule wykorzystano fragmenty PANORAMY nadawanej w
programie 2. TVP 13 grudnia 1994 roku o godz. 0.05.