home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1997 #3 / amigamamagazinepolishissue03-1 / ma_1995 / 03 / ami021.txt < prev    next >
Text File  |  1997-04-06  |  23KB  |  483 lines

  1.  
  2.  
  3.  
  4. ImageFX w praktyce (cz. 3.)
  5. ---------------------------
  6.  
  7. 1, 2, 3... RAZY AREXX W IMAGEFX
  8.  
  9. <lead>W ôrodowisku amigowym funkcjonuje pewne sîowo-wytrych.
  10. Mowa oczywiôcie o niezbyt swojsko brzmiâcym terminie ARexx, który
  11. poczâtkowo znany nielicznym, zadomowiî sië na dobre wraz z
  12. pojawieniem sië w sprzedaûy komputerów Amiga z systemem 2.04. To
  13. tu, to tam, moûna usîyszeê lub przeczytaê: "zrobiîem to w
  14. ARexxie", "programy komunikujâ sië dziëki ARexxowi" czy "ARexx
  15. not present".
  16.  
  17. <a>Tadeusz Talar
  18.  
  19. <txt> Wszystko by byîo w porzâdku, gdyby nie fakt, ûe oprócz
  20. fizycznej obecnoôci ARexxa na dyskietkach z nowymi wersjami
  21. systemu, wîaôciwie nie wiadomo, w jakim celu on sië tam znalazî.
  22. Niestety, firma Commodore ze znanych chyba tylko sobie wzglëdów
  23. potraktowaîa wszystkich posiadaczy A500+, A600, A1200 i A3000
  24. jako genialnych samouków-hobbystów, którzy sami zgîëbiâ tajniki
  25. tego jëzyka (cierpliwie przeszukujâc wszystkie gazety, sieci
  26. komputerowe i dyski public domain w poszukiwaniu jakichkolwiek
  27. informacji) albo maniakalnych graczy (którym ARexx bëdzie sië
  28. kojarzyî z nazwâ hasîa do kolejnego poziomu w ulubionej
  29. "strzelanince"), nie dostarczajâc, w komplecie doîâczanych do
  30. komputera instrukcji, pozycji traktujâcej o ARexxie, którâ to
  31. szczëôliwi posiadacze modeli A4000 otrzymujâ (a i to czasami na
  32. przykîad w jëzyku wîoskim).
  33.  
  34. Z marketingowego punktu widzenia trudno oprzeê sië wraûeniu, ûe
  35. takie zachowanie bossów wyûej wymienionej firmy byîo niczym innym
  36. jak wykonaniem kolejnych ruchów piîâ podcinajâcâ gaîâú, na której
  37. sië znajdujâ. Z jednej bowiem strony usuniëto z dyskietek
  38. systemowych (zresztâ bardzo sîusznie) ewidentnego "knota", jakim
  39. byî Amiga BASIC, równie wspaniaîej, znanej skâdinâd, firmy
  40. Microsoft, nie informujâc jednoczeônie w sposób bardzo czytelny,
  41. ûe umieszczono w zamian potëûne narzëdzie, jakim jest jëzyk
  42. ARexx, a wîaôciwie pakiet niezbëdnych programów i bibliotek
  43. standardowych funkcji, umoûliwiajâcych pisanie programów w tym
  44. jëzyku.
  45.  
  46. Mówiâc w skrócie, jëzyk ten o skîadni przypominajâcej BASIC z
  47. elementami programowania strukturalnego, majâcy duûâ liczbë
  48. standardowych funkcji, dziëki multitaskingowi Amigi stanowi
  49. integralnâ czëôê systemu operacyjnego i moûe operowaê na
  50. wszystkich jego (jak to patetycznie mówiâ nasi "niebiescy"
  51. bracia) zasobach systemowych oraz programach posiadajâcych tzw.
  52. interfejs ARexxa. Wystarczy tylko uruchomiê program RexxMast,
  53. znajdujâcy sië w katalogu System na dysku systemowym, i juû...
  54. mamy ARexx. Teraz korzystajâc z dowolnego edytora tekstu, np. ED
  55. lub CED, moûna napisaê swój pierwszy program (lepszym okreôleniem
  56. jest chyba "makrodefinicja", wiëc w tym artykule bëdë go uûywaî),
  57. zapisaê go na dysku, a nastëpnie z poziomu Shella wpisaê RX
  58. nazwa, i nasza makrodefinicja (o ile nie zawiera bîëdów) zostanie
  59. wykonana. W tym miejscu muszë zaznaczyê, ûe makrodefinicje w
  60. ARexxie sâ, ogólnie mówiâc, interpretowane linijka po linijce,
  61. stâd nie naleûy porównywaê szybkoôci wykonywania operacji z
  62. porównywalnymi programami, napisanymi np. w jëzyku C. Jak pewno
  63. zauwaûyliôcie, nie wspomniaîem ani sîowem o tym, co i jak moûna
  64. napisaê w naszej makrodefinicji. Odsyîam Was do wszelkich
  65. artykuîów i publikacji traktujâcych bezpoôrednio o tym jëzyku,
  66. artykuî ten nie stanowi bowiem fragmentu kursu ARexxa. Jego
  67. zaîoûeniem jest chëê przybliûenia Czytelnikom praktycznego
  68. zastosowania tego jëzyka w poîâczeniu z programem ImageFX.
  69.  
  70. Tak naprawdë prawdziwâ potëgë ARexxa moûemy zobaczyê dopiero w
  71. wypadku korzystania z programów majâcych interfejs ARexxa. Na
  72. interfejs ten skîada sië, z koniecznoôci upraszczajâc, po
  73. pierwsze fakt tworzenia przez program po jego uruchomieniu nazwy
  74. portu, z którego moûe korzystaê interpreter ARexxa, przesyîajâc
  75. lub otrzymujâc z niego dane, po drugie zaô program dodaje pewnâ
  76. liczbë funkcji, których moûna uûywaê wraz ze standardowymi
  77. funkcjami ARexxa w pisanych dla tego programu makrodefinicjach.
  78.  
  79. Zdajë sobie sprawë, ûe dla wielu z Was napisane powyûej wiersze
  80. mogâ brzmieê nieco enigmatycznie, stâd jak najszybciej przejdë do
  81. praktyki. Oczywiôcie na przykîadzie programu ImageFX...
  82.  
  83. <sr>ImageFX w szkole
  84.  
  85. <txt>Ten przewrotny tytuî nie powinien zbiê nikogo z tropu,
  86. pozornie bowiem tylko nie ma nic wspólnego z tematem tego
  87. artykuîu. Najpierw chciaîbym przedstawiê bardzo cennâ cechë
  88. ImageFX-a, jakâ jest moûliwoôê zapamiëtywania kolejnych
  89. czynnoôci, wykonywanych przez nas podczas tworzenia i modyfikacji
  90. grafiki za pomocâ tego programu. Zastosowaï tej funkcji jest
  91. wiele, ot, choêby czësto powtarzane operacje nie muszâ
  92. przyprawiaê nas o zwichniëcie nadgarstka podczas wymachiwania
  93. myszkâ i nieustannego klikania, wystarczy raz nauczyê program
  94. sekwencji operacji, a nastëpnie nakazaê ImageFX-owi powtórzenie
  95. ich, ale juû bez naszych podpowiedzi. Program, jak przystaîo na
  96. wzorowego ucznia, powtórzy je z zegarmistrzowskâ precyzjâ, nie
  97. opuszczajâc ani jednej operacji.
  98.  
  99. Zabawmy sië wiëc w nauczyciela. Tu maîa uwaga, nasz uczeï
  100. (ImageFX) bëdzie notowaî wszystkie polecenia nie w zeszycie, ale,
  101. jak przystaîo na "cyfrowego twora", w plikach umieszczanych na
  102. dysku (miëkkim albo tym bardziej twardym) i to w swoim narzeczu,
  103. czyli jëzyku ARexx, wzbogaconym o wîasne, znane tylko jemu, sîowa.
  104. Waûne jest wiëc, by w systemie byî obecny interpreter tego
  105. jëzyka.
  106.  
  107. Uruchommy wiëc program RexxMast, a nastëpnie ImageFX. W panelu
  108. Toolbox kliknijmy na gadûecie BUFFER i wybierzmy opcjë CREATE.
  109. Pojawi sië panel definiujâcy rozmiar tworzonego bufora. Poniewaû
  110. z dydaktycznego punktu widzenia pokazane tam parametry bëdâ nam w
  111. zupeînoôci wystarczaê, kliknijmy na OKEY i rozpocznijmy lekcjë.
  112.  
  113. Przytrzymujâc klawisz [Shift] wciskamy klawisz [1], rozpoczynajâc
  114. proces edukacji naszego ucznia.
  115.  
  116. ImageFX poprosi nas tylko o podanie tematu lekcji w postaci nazwy
  117. pliku, do jakiego ma on zapisaê przekazywanâ mu wiedzë.  Zalecam
  118. dodanie do bazowej nazwy przyrostka ".IFX". Bëdzie on nas
  119. informowaî, ûe zadane polecenia zapisane bëdâ w jëzyku
  120. zrozumiaîym szczególnie przez naszego ucznia. Próba zmuszenia do
  121. powtórzenia zawartych tam informacji, przez innych
  122. uczëszczajâcych do szacownej uczelni im. Williama S. Hawesa
  123. (twórca amigowej wersji jëzyka Rexx) uczniów (czyt. programów),
  124. znajâcych co prawda korzenie jëzyka, ale nie rozumiejâcych jego,
  125. specyficznych dla ImageFX-a, zwrotów, z góry skazana jest na
  126. niepowodzenie.  Istnieje wprawdzie moûliwoôê kontaktu miëdzy
  127. naszâ uczniowskâ braciâ, ale o tym nieco póúniej. Wpiszmy wiëc w
  128. pole FILE pojawiajâcego sië requestera nazwë, np. FIGURY.IFX, i
  129. kliknijmy na OKEY, uruchamiajâc w ten sposób proces uczenia.
  130.  
  131. Za pomocâ "narzëdzi kreôlarskich", udostëpnianych przez ImageFX,
  132. narysujmy kilka figur (prostopadîoôciany, okrëgi itp.), z
  133. wypeînieniem lub bez, zmieniajâc jednoczeônie kolor kaûdej z
  134. figur.
  135.  
  136. Kiedy powyûsza czynnoôê juû sië nam znudzi, kliknijmy na gadûecie
  137. okreôlajâcym obszar poddawany obróbce (oznaczony czerwonâ obwódkâ
  138. na rys. 1.) i ustawmy go w pozycji BOX. Zaznaczmy fragment,
  139. nieúle juû pewnie "zapaêkanego", obrazka i kliknijmy na gadûecie
  140. CONVOLVE. Z pojawiajâcego sië panela wybierzmy np. opcjë
  141. RELIEFMAP i kliknijmy na OKEY. By jeszcze bardziej skomplikowaê
  142. naszâ lekcjë, kliknijmy na gadûecie COLOR, wybierzmy opcjë
  143. COLORTOGRAY i kliknijmy na OKEY. Zauwaûcie, ûe pozornie nic
  144. podejrzanego sië nie dzieje. Pracujemy sobie w programie ImageFX
  145. jakby nigdy nic, ale pamiëtajcie o tym, ûe choê brak jest o tym
  146. jakiejkolwiek informacji (jedna z drobnych niedogodnoôci
  147. programu), nasz uczeï skwapliwie odnotowuje kaûdy nasz ruch,
  148. nawet ten w niewîaôciwâ stronë, jak i skorzystanie choêby z
  149. funkcji UNDO.
  150.  
  151. Dalszâ czëôê zajëê pozostawiam Waszej inwencji, moûecie korzystaê
  152. z kaûdej funkcji udostëpnianej przez program (np. ingerowaê w
  153. kolory opcjâ BALANCE, stosowaê róûne efekty, filtry, generowaê
  154. gotowy obrazek, zapisywaê lub odczytywaê obrazki itp.), waûne
  155. jest tylko to, by w odpowiedniej chwili poinformowaê o
  156. zakoïczeniu zajëê.  W tym celu naleûy uûyê kombinacji klawiszy
  157. [Shift] i [2].
  158.  
  159. Uczeï poinformuje o zrozumieniu naszych intencji poprzez
  160. wyôwietlenie na ekranie informacji "Macro recording stopped", co
  161. w narzeczu uczniowskim znaczy, ûe zdâûyî wszystko zanotowaê.
  162. Kliknijmy na OKEY i, z prawdziwie belferskâ przenikliwoôciâ,
  163. sprawdúmy, czy tak jest naprawdë. By wyeliminowaê ewentualne
  164. szachrajstwa ze strony ImageFX-a, zetrzyjmy brutalnie tablicë,
  165. czyli usuïmy wykreowany obrazek, przeîâczajâc gadûet obszaru na
  166. FULL i wciskajâc klawisz [k].
  167.  
  168. Mamy dwie drogi dotarcia do notatek ucznia, pierwsza poprzez
  169. klikniëcie na gadûecie AREXX w panelu TOOLBOX, druga zaô to
  170. uûycie kolejnej, ale zarazem ostatniej, zwiâzanej z tematem
  171. artykuîu, kombinacji klawiszy, czyli [Shift] i [3]. W obydwu
  172. wypadkach pojawi sië spis plików, zawierajâcych notatki naszego
  173. ucznia, kliknijmy na nazwie tego, w którym powinna byê zapisana
  174. treôê ostatniej lekcji, czyli FIGURY.IFX, a nastëpnie na OKEY.
  175. Spowoduje to odtworzenie przez ImageFX zawartych w lekcji
  176. zapisków i, co jest warte uwagi, ûe choê nic on od siebie nie
  177. doda ani nie ujmie, to sumaryczny czas wykonania wszystkich
  178. operacji bëdzie znacznie krótszy niû ten, jakiego potrzebowaî
  179. jego nauczyciel, czyli Ty, drogi Czytelniku, na uzyskanie takich
  180. samych efektów.
  181.  
  182. O tym, ûe w caîâ sprawë mocno zamieszany jest ARexx, informuje
  183. wyôwietlany podczas odtwarzania czynnoôci napis "ARexx macro in
  184. progress ...".
  185.  
  186.  
  187. <sr>Twórcze lenistwo albo walka z czasem
  188.  
  189. <txt>Po rozrywkowym wstëpie nadszedî czas na drugâ odsîonë,
  190. widzianâ z diametralnie innego punktu. W tej czëôci artykuîu
  191. chciaîbym Wam przedstawiê bardziej zaawansowane wykorzystanie
  192. ARexxowych moûliwoôci ImageFX-a.
  193.  
  194. Spróbujmy odczytaê zawartoôê pliku, utworzonego w poprzednim
  195. przykîadzie, za pomocâ dowolnego programu (np. More, MultiView,
  196. czy choêby edytora tekstu ED lub CED). Po wykonaniu tej czynnoôci
  197. moûna zobaczyê, ûe ImageFX zarejestrowaî wszystkie nasze ruchy w
  198. postaci kolejnych, znanych mu komend z parametrami.  Wîaônie te
  199. komendy stanowiâ rozszerzenie ARexxa i mogâ byê mieszane z innymi
  200. elementami tego jëzyka. Program oferuje kilkadziesiât takich
  201. komend, opisanych szczegóîowo w instrukcji obsîugi.
  202.  
  203. Moûna równieû testowaê dziaîanie danej komendy, poprzez
  204. skorzystanie z wbudowanej w ImageFX konsoli, gdzie naleûy jâ
  205. wpisaê wraz z wymaganymi parametrami.
  206.  
  207. Upewnijmy sië wiëc, czy na ekranie wyôwietlona jest zawartoôê
  208. panelu TOOLBOX. Jeûeli tak, wczytajmy dowolny obrazek z dysku.
  209. Nastëpnie wciônijmy klawisz [Esc], co spowoduje otwarcie konsoli.
  210. Wpiszmy ReliefMap i wciônijmy klawisz [Enter].  Odpowiada to
  211. klikniëciu myszkâ na gadûecie CONVOLVE, a nastëpnie na opcji
  212. RELIEF MAP. Spróbujmy jeszcze raz posîuûyê sië konsolâ i wpiszmy
  213. Contrast 50. Spowoduje to powstanie efektu równowaûnego
  214. klikniëciu na gadûecie BALANCE i przesuniëcie suwaka CONTRAST na
  215. wartoôê 50.
  216.  
  217. Jak wiëc widzicie, uûycie konsoli moûe z jednej strony
  218. przyspieszyê posîugiwanie sië programem, z drugiej zaô uîatwiê
  219. pisanie makrodefinicji poprzez moûliwoôê przetestowania dziaîania
  220. poszczególnych komend z okreôlonymi przez uûytkownika
  221. parametrami.
  222.  
  223. Warto sië teû zapoznaê z przykîadowymi makrodefinicjami
  224. umieszczonymi w katalogu ImageFX:Rexx. Stanowiâ one prawdziwâ
  225. "kopalnië" wîaôciwego zastosowania komend. Niestety, ramy tego
  226. artykuîu nie pozwalajâ na szczegóîowâ prezentacjë komend
  227. ImageFX-a, ale myôlë, ûe nastëpny przykîad przybliûy Wam nieco
  228. sposób ich wkomponowania w strukturë jëzyka ARexx i budowë
  229. wîasnych makrodefinicji.
  230.  
  231. By naôwietliê tîo kolejnych bojów z tym programem, pozwólcie na
  232. maîy osobisty wtrët.
  233.  
  234. Otóû pracujâc w pewnej prywatnej lokalnej stacji telewizyjnej,
  235. stanâîem przed nie lada problemem, jak w szybki sposób
  236. wygenerowaê tzw. PIP-y do serwisów informacyjnych, emitowanych
  237. przez naszâ stacjë. Dla tych z Was, którzy nie sâ zorientowani w
  238. temacie, spieszë z informacjâ, ûe owe PIP-y to nic innego, jak
  239. maîe obrazki wyôwietlane po lewej albo po prawej stronie spikera
  240. podczas zapowiedzi kolejnej informacji. Poniewaû PIP stanowi
  241. wzrokowy zwiastun filmowej informacji, zawiera on z reguîy jakiô
  242. najbardziej reprezentatywny obrazek, dotyczâcy danego tematu (np.
  243. gîowa jakiegoô polityka, fragment mapki terenu, na którym rzecz
  244. sië rozgrywa albo fotografië szacownego gmachu), poparty krótkim
  245. tekstem dodatkowo sygnalizujâcym sprawë. Zdarza sië, ûe obydwa
  246. elementy (w zaleûnoôci od stacji) umieszczone sâ dodatkowo na
  247. jakimô tle.
  248.  
  249. Mój problem polegaî na tym, ûe choê generowanie PIP-ów nie naleûy
  250. do operacji skomplikowanych (zdigitalizowaê obrazek, zeskalowaê
  251. do odpowiednich wymiarów, umieôciê na tle, dopisaê tekst, zapisaê
  252. na dysku i nastëpny...), to jednak ma ona dwa zasadnicze
  253. mankamenty. Po pierwsze jest operacjâ czasochîonnâ, kaûdego dnia
  254. byîo bowiem potrzebnych do serwisów okoîo kilkanaôcie PIP-ów, na
  255. dodatek nowe tworzone byîy bezpoôrednio przed serwisem. Poniewaû
  256. tzw. zasoby kadrowe w wypadku prywatnych stacji sâ bardzo
  257. niewielkie, wykonywanie PIP-ów naleûaîo do jednej z wielu
  258. czynnoôci, którymi obarczony byî realizator serwisu
  259. informacyjnego, i mógî nabawiê sië nerwowego "tiku" od
  260. spoglâdania na zegarek i wiecznych pytaï "Czy zdâûë?".
  261.  
  262. Po drugie ile razy moûna robiê to samo, codziennie kilkanaôcie, w
  263. tygodniu kilkadziesiât, w miesiâcu ... itd. Moûna przecieû
  264. caîkiem wytrzeê îapki myszki, nie mówiâc o kîopotach ze
  265. wspomnianym juû nadgarstkiem. Dochodzi jeszcze trzeci mankament,
  266. zwiâzany z tym, ûe o ile realizator musi biegle znaê sië na
  267. sprzëcie telewizyjnym (wizyjnym czy dúwiëkowym), o tyle w wypadku
  268. znajomoôci oprogramowania graficznego tak nie jest.
  269.  
  270. Stâd, by ulûyê nieco moim kolegom w walce z czasem, a z siebie
  271. zrzuciê widmo wykonywania jednostajnych czynnoôci, postanowiîem
  272. znaleúê wîaôciwe rozwiâzanie.
  273.  
  274. Z pomocâ przyszedî mi, oczywiôcie, ImageFX wsparty jëzykiem
  275. ARexx.
  276.  
  277. Postanowiîem napisaê makrodefinicjë, odzwierciedlajâcâ przyjëty
  278. przeze mnie algorytm tworzenia PIP-ów, tzn.:
  279.  
  280. 1. Wczytaê z dysku przygotowany obrazek z tîem dla PIP-u
  281. (utworzonego wczeôniej za pomocâ dowolnego programu malarskiego,
  282. np. DPainta lub samego ImageFX-a, przykîad -- patrz rys. 2.).
  283.  
  284. 2. Wczytaê jako Brush z dysku, z katalogu Work:Obrazki, obrazek
  285. przeznaczony do konwersji na PIP-a.
  286.  
  287. 3. Zeskalowaê go do odpowiednich rozmiarów i umieôciê w
  288. odpowiednim miejscu na tle.
  289.  
  290. 4. Przetworzyê nazwë pliku obrazka na tekst, wygenerowaê go przy
  291. uûyciu czcionki CGTimesItalic, zeskalowaê, i umieôciê w
  292. odpowiednim miejscu na tle.
  293.  
  294. 5. Wygenerowaê gotowy obrazek z PIP-em i zapisaê go na dysku w
  295. katalogu Work:PIPy, w pliku z dodanym przyrostkiem ".PIP".
  296.  
  297. 6. Sprawdziê, czy jest nastëpny obrazek w katalogu Work:Obrazki.
  298. Jeûeli tak, to powtórzyê kroki od 1 do 6, jeûeli nie, to
  299. zakoïczyê dziaîanie makrodefinicji.
  300.  
  301. Za pomocâ popularnego edytora CED napisaîem odpowiedniâ mieszankë
  302. komend ImageFX-a i ARexxa, którâ przedstawia listing 1. W ten
  303. sposób mój problem poszedî w niepamiëê i obecnie po
  304. zdigitalizowaniu, wskanowaniu lub narysowaniu odpowiednich
  305. obrazków uruchamiam udoskonalonâ jeszcze nieco makrodefinicjë i
  306. mogë sië zajâê innymi sprawami, a ImageFX wykonuje caîâ "czarnâ
  307. robotë". Gdy jâ skoïczy, gotowe obrazki z PIP-ami trafiajâ do
  308. odpowiednio przygotowanego skryptu w Scali, ale o tym, w jaki
  309. sposób, to juû przy innej okazji.
  310.  
  311. Przykîad poîâczenia poprzez genlock PIP-ów z "ûywym" obrazem
  312. wideo pokazuje rys. 3.
  313.  
  314. W tym miejscu muszë zwróciê Waszâ uwagë na to, iû parametry
  315. liczbowe, zaîâczone w listingu 1., odpowiadajâ rozmiarowi lo-res
  316. obrazka, stanowiâcego podkîad z tîem dla PIP-u, poniewaû
  317. makrodefinicja ta jest tylko przykîadem do wypróbowania nawet
  318. przez tych z Was, którzy nie dysponujâ duûâ liczbâ MB pamiëci
  319. RAM. W uûywanej przeze mnie roboczej wersji wyjôciowe obrazki z
  320. PIP-ami sâ w trybie super hi-res laced. Innâ sprawâ jest
  321. przyjëta konwencja nazewnictwa plików z obrazkami przeznaczonymi
  322. do obróbki. Otóû zamiast spacji pomiëdzy wyrazami wprowadzamy
  323. znak "_". Makrodefinicja automatycznie zamienia te znaki na
  324. spacje, stâd nazwa np. "Dziô_w_kraju" na wyjôciowym PIP-ie ma
  325. poprawny wyglâd, tzn. "Dziô w kraju", a plik zawierajâcy PIP
  326. bëdzie miaî nazwë "Dziô_w_kraju.PIP".
  327.  
  328.  
  329. <sr>"Nobody's perfect", czyli rzecz o protezach
  330.  
  331. <txt>Jak dotâd nie napisano idealnego programu, kaûdy ma jakieô
  332. mniejsze lub wiëksze bîëdy albo po prostu "niedoróbki". ImageFX
  333. 1.5 jest zasadniczo wolny od powaûniejszych mankamentów, ale i w
  334. jego wypadku nie udaîo sië autorom ustrzec kilku doôê istotnych
  335. potkniëê. Szczególnie jedno daîo mi sië mocno we znaki.
  336. Spróbujcie bowiem wprowadziê do tworzonego obrazka jakikolwiek
  337. tekst pisany skalowalnâ czcionkâ, nie wiem jak Wam, ale mnie to
  338. sië nie udaîo.
  339.  
  340. Klikamy w pasku "narzëdzi" panelu Toolbox na ikonie sîuûâcej do
  341. wprowadzania tekstu (to ta oznaczona literami ABC), nastëpnie w
  342. pojawiajâcym sië panelu (patrz rys. 4.) do pola oznaczonego ûóîtâ
  343. obwódkâ wprowadzamy potrzebny tekst, klikamy na gadûecie CHOOSE
  344. FONT i ... stajemy przed dylematem, co zrobiê dalej.
  345.  
  346. Normalnie, w tym momencie naleûy najpierw kliknâê na katalogu o
  347. takiej nazwie jak czcionka, którâ chcemy wybraê, a nastëpnie na
  348. pliku zawierajâcym odpowiedni rozmiar danej czcionki, np.
  349. najpierw na katalogu Times, a nastëpnie na pliku o nazwie 24.
  350.  
  351. Jak wiecie (lub nie), próba odnalezienia katalogu o nazwie
  352. czcionki wektorowej jest skazana z góry na niepowodzenie,
  353. poniewaû czcionki te nie majâ ustalonych z góry plików z
  354. odpowiednimi rozmiarami i standardowo sâ skalowane na podstawie
  355. danych, zapisanych w pliku definicji czcionki, umieszczonym w
  356. katalogu "FONTS:_bullets_outlines", chyba ûe przetworzyliômy je
  357. na postaê bitmapowâ, korzystajâc z programu Intellifont lub
  358. Fountain. Natomiast klikniëcie bezpoôrednio na nazwie pliku
  359. definicji czcionki w wymienionym wyûej katalogu nie wywoîuje
  360. poûâdanego efektu w postaci wczytania wskazanej czcionki.
  361.  
  362. Po za tym nowe systemy operacyjne Amigi umoûliwiajâ skalowanie
  363. nie tylko czcionek wektorowych, ale i bitmapowych, stâd normalnie
  364. (tzn. w programach bezpoôrednio wykorzystujâcych të cechë
  365. systemu) moûemy uûywaê np. czcionki Topaz w wymiarze 145, i
  366. znieksztaîcona, bo znieksztaîcona, w wyniku prostego powiëkszania
  367. pikseli, ale wîaônie taka pojawi sië na ekranie.
  368.  
  369. Cóû wiëc zrobiê? Czyûby ten ôwietny program ograniczaî nas
  370. jedynie do czcionek bitmapowych w z góry ustalonych wymiarach,
  371. jak za czasów systemu 1.3 i zarazem w momencie gdy jego gîówny
  372. rywal, ADPro, moûe robiê z obydwoma rodzajami czcionek, co
  373. sobie tylko zaûyczymy?
  374.  
  375. Juû pobieûne wejrzenie w zawartoôê plików, umieszczonych w
  376. katalogu "ImageFX:Rexx", utwierdziîo mnie w przekonaniu, ûe nie
  377. jest tak úle. Na wîaôciwy ôlad naprowadziîa mnie doîâczona w
  378. pakiecie makrodefinicja o nazwie TITLE.IFX.
  379.  
  380. Okazaîo sië bowiem, ûe ImageFX oferuje duûo wiëksze moûliwoôci
  381. operowania czcionkami, ale wyîâcznie "z poziomu" ARexxa.
  382.  
  383. Wygenerowanie tekstu jest moûliwe dziëki wewnëtrznej komendzie
  384. programu:
  385.  
  386. <l>Text CZCIONKA ROZMIAR [PROPORCJA] [ITALIC] [BOLD] [UNDERLINE] TEKST
  387.  
  388. gdzie
  389.  
  390. CZCIONKA -- oznacza nazwë zbioru czcionki o rozszerzeniu ".font"
  391. wraz z peînâ ôcieûkâ dostëpu, np. FONTS:CGTimes.font;
  392.  
  393. ROZMIAR -- oznacza rozmiar czcionki w punktach;
  394.  
  395. PROPORCJA -- oznacza procentowy stosunek szerokoôci znaku do jego
  396. standardowej szerokoôci, np. wpisanie wartoôci 50 oznacza, ûe po
  397. przeskalowaniu tekstu szerokoôê kaûdego znaku bëdzie stanowiê 50%
  398. standardowej szerokoôci znaku wystëpujâcej dla danej wartoôci,
  399. wprowadzonej jako ROZMIAR;
  400.  
  401. ITALIC, BOLD, UNDERLINE -- opcjonalne dodanie atrybutów czcionce,
  402. odpowiednio -- pochylenie, pogrubienie i podkreôlenie;
  403.  
  404. TEKST -- napis, który chcemy wygenerowaê przy uûyciu powyûszych
  405. parametrów.
  406.  
  407. Wypróbujmy dziaîanie tej instrukcji.
  408.  
  409. Stwórzmy dowolny bufor poprzez klikniëcie na gadûecie BUFFER w
  410. panelu TOOLBOX, nastëpnie wybierzmy opcjë CREATE BUFFER... i, nie
  411. zastanawiajâc sië zbytnio, kliknijmy na OK. Wciônijmy klawisz
  412. [Esc], by otworzyê konsolë sîuûâcâ do wprowadzania komend
  413. ImageFX-a, i wpiszmy:
  414.  
  415. <l>Text FONTS:Topaz.font 60 50 BOLD Arexx w ImageFX
  416.  
  417. <txt>a nastëpnie wciônijmy klawisz [Enter].
  418.  
  419. Wciônijmy jeszcze raz Enter, by opuôciê konsolë.
  420.  
  421. Jeûeli wszystko jest w porzâdku, to w tym momencie powinniômy
  422. ujrzeê "podczepiony" do wskaúnika myszki napis.
  423.  
  424. Zauwaûcie, ûe jest to przeskalowany wg zadeklarowanych parametrów
  425. (rozmiar 60, szerokoôê znaku równa 50% standardowej szerokoôci
  426. dla danego rozmiaru, czcionka pogrubiona -- BOLD) napis czcionkâ
  427. topaz, która, choê bitmapowa, zostaîa przeskalowana do zadanego
  428. wymiaru. Niestety, koïcowy efekt dziedziczy niedogodnoôci
  429. zwiâzane z uûywaniem tego typu czcionek w operacji skalowania.
  430. Nie wyglâdajâ one najlepiej (zwîaszcza w wypadku duûych
  431. rozmiarów), majâ "schodki", ale w niektórych wypadkach moûe to
  432. byê bardzo przydatne. Spieszë powiadomiê wszystkich tych, którzy
  433. potrzebujâ lepiej wyglâdajâcych napisów, iû nie stojâ na
  434. straconej pozycji. Moûna bowiem w komendzie Text podaê nazwë
  435. czcionki wektorowej, oczywiôcie w "zadomowionym" w nowych
  436. systemach operacyjnych Amigi standardzie AGFA Compugraphic lub,
  437. jak kto woli, Intellifont. Poniewaû instalacja tych czcionek
  438. powoduje utworzenie w katalogu FONTS: plików z przyrostkiem
  439. ".font", to sposób ich uûycia bëdzie identyczny z opisanym
  440. powyûej, np.:
  441.  
  442. <l>Text FONTS:CGTimes.font 60 50 Arexx w ImageFX
  443.  
  444. <txt>W tym wypadku ImageFX na podstawie pliku definicji czcionki,
  445. znajdujâcego sië w katalogu "FONTS:_bullets_outlines", wygeneruje
  446. napis, który bëdzie wyglâdaî jednak znacznie lepiej.
  447.  
  448. Jak wiëc widzicie, to co nie jest bezpoôrednio moûliwe z poziomu
  449. interfejsu uûytkownika ImageFX-a, moûe byê dostëpne, ale przy
  450. wykorzystaniu wewnëtrznych komend tego programu.  Na marginesie
  451. naleûy zaznaczyê, iû w nowej wersji programu -- 2.0, która
  452. powinna byê juû w sprzedaûy w momencie, gdy czytacie te sîowa,
  453. sprawa wprowadzania napisów zostaîa caîkowicie rozwiâzana poprzez
  454. znaczne poprawienie panelu wprowadzania tekstu, nadal jednak
  455. opcja zmiany proporcji znaku jest dostëpna tylko z poziomu
  456. ARexxa.
  457.  
  458. Póki co, wykorzystujâc komendy ImageFX-a, wymieszane z
  459. instrukcjami ARexxa, moûemy przyrzâdziê kolejny "koktajl", który
  460. stanowiê bëdzie niezîe antidotum na nasze dîonie, wymëczone
  461. wspomnianym wyûej "wpalcowywaniem" napisów.
  462.  
  463. W peîni dziaîajâcy przykîad, bëdâcy makrodefinicjâ dla ImageFX-a,
  464. przedstawia listing 2. Moûe on stanowiê bazë dla Waszych wîasnych
  465. eksperymentów i byê jednoczeônie inspiracjâ do tworzenia innych
  466. "protez", uîatwiajâcych wykorzystanie tego programu.
  467.  
  468. Efekt dziaîania tej makrodefinicji przedstawia rys. 5.
  469.  
  470. Jak widzicie, ImageFX, wsparty ARexxem, jest bardzo elastycznym
  471. narzëdziem, mogâcym pomóc w sytuacjach, w których zawodzi
  472. korzystanie z klasycznego "oblicza" tego programu, czyli jego
  473. interfejsu uûytkownika. Bogactwo moûliwoôci jest tak duûe, ûe
  474. nie sposób opisaê je w szczegóîach na îamach tego artykuîu.
  475. Dlatego zachëcam do eksperymentów i dokîadnego zapoznania sië z
  476. zaîâczonymi do programu przykîadowymi makrodefinicjami
  477. ARexxowymi. Myôlë, ûe zauwaûycie, tak jak i ja, iû gwiazda
  478. ImageFX-a zaôwieci jeszcze jaôniejszym blaskiem.
  479.  
  480. <przyp> W artykule wykorzystano fragmenty PANORAMY nadawanej w
  481. programie 2. TVP 13 grudnia 1994 roku o godz. 0.05.
  482.  
  483.