home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1997 #3
/
amigamamagazinepolishissue03-1
/
ma_1995
/
10
/
ami026.txt
< prev
next >
Wrap
Text File
|
1997-04-07
|
14KB
|
483 lines
ImageFX
-------
INNE "OBLICZE"
<lead>Byê moûe po n-tym uruchomieniu ImageFX-a i napatrzeniu sië
na firmowy panel zauwaûyliôcie pewnâ prawidîowoôê. Jednych opcji
uûywacie bardzo czësto, innych rzadko lub w ogóle. Dodatkowa
pokusa usprawnienia sobie pracy przez wywoîywanie najczëôciej
wykonywanych operacji przy uûyciu klawiszy, bez potrzeby
"przedzierania sië" przez poszczególne panele, subpanele itp.,
sprawia, ûe przychodzi Wam zapewne do gîowy myôl: "Coô by sië tu
przydaîo zmieniê".
<a>Tadeusz Talar
<txt>Temat tego artykuîu nie jest bezpoôrednio zwiâzany z
prezentacjâ graficznych moûliwoôci ImageFX-a. Chciaîbym bowiem
przedstawiê moûliwoôci modyfikacji konfiguracji tego programu, a
zwîaszcza tych elementów, które sâ zwiâzane z interfejsem
uûytkownika. Programiôci z firmy Nova Design wîoûyli duûo serca w
to, by nabywca ich produktu miaî duûy wpîyw na przebieg pracy z
programem, dlatego teû ImageFX, od pojawienia sië na rynku,
stanowiî bardzo "giëtkie" w uûyciu narzëdzie. Oprócz klasycznych
preferencji programu i parametrów startowych (parametry w pliku
ikony -- ang. tooltypes), majâcych bezpoôredni wpîyw na pracë,
wbudowano mechanizmy, pozwalajâce na zdefiniowanie:
-- operacji uruchamianych automatycznie po starcie programu;
-- obîoûenia klawiatury;
-- zawartoôci panela sekcji TOOLBOX.
Przy umiejëtnym ich zastosowaniu moûemy w radykalny sposób
odmieniê "oblicze" dobrze znanego, wydawaîoby sië, programu.
<sr>Na starcie
<txt>ImageFX, po uruchomieniu, standardowo zgîasza sië panelem
opcji i... tyle. Jeûeli chcemy obrabiaê jakiô plik, to wiadomo,
klikamy na gadûecie LOAD itd., ale jeôli chcemy tworzyê nowy
obrazek, to juû gorzej. Trzeba zdefiniowaê bufor, tzn. najpierw
kliknâê na BUFFER, potem na CREATE BUFFER i dopiero wtedy moûna
przystâpiê do okreôlenia rozmiarów obrazka. "Z punktu widzenia
myszy" to dwa klikniëcia. Z mojego, o jedno za duûo. Postanowiîem
wiëc skorzystaê z moûliwoôci deklaracji tego, co program ma
wykonaê bezpoôrednio po starcie, i sprawiê, by na poczâtku witaîo
mnie pytanie: "co chcë robiê", czy obrabiaê plik z dysku, czy
tworzyê nowy obrazek. Jak sië okazaîo, moûna to zrobiê na dwa,
zbliûone do siebie, sposoby.
Pierwszy sposób, jak sië póúniej okazaîo o mniejszych
moûliwoôciach, to utworzenie w katalogu, w którym znajduje sië
program, specjalnego pliku o nazwie "Startup.script". ImageFX
podczas uruchomienia sprawdza obecnoôê tego pliku i jeûeli on
istnieje, wykonuje go linijka po linijce. Pomimo iû na pierwszy
rzut oka zawartoôê "Startup.script" przypomina nieco wyglâd
makrodefinicji w jëzyku ARexx, to tak naprawdë niâ NIE JEST.
Dlatego teû w pliku tym mogâ byê wpisane TYLKO komendy
udostëpniane przez program ImageFX oraz linie puste i linie
komentarza, tzn. te, które rozpoczynajâ sië znakiem ";". Komendy,
o których piszë, pomyôlane sâ gîównie z przeznaczeniem do
wykorzystania ich w makrodefinicjach ARexxa, pisanych dla
ImageFX-a. Ich skîadnië i opis moûna znaleúê w instrukcji obsîugi
lub w Helpie ImageFX-a 2.0. W wypadku jakiegokolwiek bîëdu
wykonywanie instrukcji, zawartych w "Startup.script", jest
przerywane.
Przykîad mojego "Startup.script" przedstawia LISTING 1.
<l>
; LISTING 1
; Przykîadowy skrypt startowy ImageFX - Startup.script
;
; Po starcie utwórz bufor PAL:LoRes
;
CreateBuffer 320 256 FORCE
;
; nastëpnie "wyczyôê" go do biaîego koloru
; (w standardowej palecie kolorów ImageFX jest to kolor z rejestru 1)
; UWAGA! Linia ta dodana ze wzglëdu na moûliwoôê zastosowania tego skryptu
; w kaûdej wersji programu ImageFX (w wersji 2.0 moûna kolor bufora
; deklarowaê bezpoôrednio w komendzie CreateBuffer)
ClearBuffer FORCE 255 255 255
;
; Koniec
<txt>No dobrze, powiecie, ale miaî byê wybór: "plik z dysku albo
nowy obrazek", a tu tylko tworzenie nowego bufora. Fakt ten ma
miejsce dlatego, ûe, jak juû napisaîem, w "Startup.script" mogâ
byê tylko komendy ImageFX-a, bez domieszki klasycznych rozkazów
ARexxa. Brak moûliwoôci zastosowania jakiejkolwiek formy
instrukcji warunkowej wyklucza wiëc realizacjë tego "albo".
Wyjôciem z tej kîopotliwej sytuacji jest zastosowanie drugiej
metody okreôlania operacji uruchamianych po starcie ImageFX-a,
tzn. skorzystanie z moûliwoôci utworzenia pliku "Startup.ifx",
zawierajâcego makrodefinicjë w jëzyku ARexx. W tym wypadku moûemy
sobie pozwoliê na wszystkie szaleïstwa, udostëpniane przez ten
jëzyk w poîâczeniu z komendami ImageFX-a. Plik ten powinien byê
umieszczony w domyôlnej ôcieûce dostëpu do makrodefinicji
ARexxowych, zdefiniowanych w preferencji ImageFX-a.
Odpowiedniâ makrodefinicjë przedstawia LISTING 2., natomiast
efekt dziaîania rys. 1.
<l>
* LISTING 2
*
* $VER: Startup.ifx v0.09 (10.08.95)
*
* Makroinstrukcja w jëzyku ARexx dla programu ImageFX.
* Autor: Tadeusz Talar
*
* Instrukcje znajdujâce sië w pliku o tej nazwie sâ automatycznie
* wykonywane podczas uruchomienia programu ImageFX.
* Bezpoôrednio po starcie mamy moûliwoôê wyboru, czy chcemy
* edytowaê plik z dysku, czy tworzyê nowy obrazek.
*/
OPTIONS RESULTS
/* Definicja struktury panela sîuûâcego do wyboru odpowiedniej opcji */
StartUp.0 = 3
StartUp.1 = "JAKI OBRAZEK ?"
StartUp.2 = "Z pliku"
Startup.3 = "Nowy"
ListRequest StartUp.0 StartUp
rezultat = result
SELECT
WHEN rezultat = 2 THEN
/* Wybór pliku przy uûyciu requestera */
LoadBuffer
WHEN rezultat = 3 THEN
DO
/* Wybór parametrów tworzonego bufora przy uûyciu panela
oraz "wyczyszczenie" go "do biaîego" */
CreateBuffer FORCE
ClearBuffer FORCE 255 255 255
END
OTHERWISE NOP
END
Redraw
EXIT
/************************************************************************/
<txt> Na koniec tej czëôci artykuîu dwie uwagi. Po pierwsze
jeûeli jednoczeônie istniejâ obydwa opisywane pliki, tzn.
"Startup.script" i "Startup.ifx", to najpierw realizowane sâ
komendy umieszczone w "Startup.script", a nastëpnie te w
"Startup.ifx".
<sr>Pod palcami
<txt>Nie jest zbyt odkrywcze stwierdzenie, ûe posîugiwanie sië
klawiszami (lub kombinacjami klawiszy) pozwala na znaczne
przyspieszenie pracy z kaûdym programem komputerowym. Po
pierwszych zachîyôniëciach sië moûliwoôciami zastosowania myszy
jako urzâdzenia wejôciowego w interfejsach uûytkownika róûnej
maôci wiëkszoôê profesjonalistów (sîowo to w slangu ludzi spod
znaku niebieskich i nadgryzionych maszyn liczâcych oznacza po
prostu ich samych, co nie ma nic wspólnego z moim rozumieniem
tego pojëcia, tzn. ludzi traktujâcych na serio pracë z
komputerem) przychylniej patrzy na programy, w których operacje (nie
wszystkie, ale te, które moûna) wywoîuje sië poprzez wciôniëcie
odpowiedniej kombinacji klawiszy (ang. shortcuts). ImageFX
standardowo pozwala na dostëp do wiëkszoôci opcji przy uûyciu
klawiszy (charakterystyczna podkreôlona litera w wiëkszoôci nazw
gadûetów i opcji oznacza dostëp poprzez wciôniëcie klawiszy
[Prawa Amiga]+litera). Wystarczy zerknâê do znajdujâcego sië w
katalogu programu pliku "Standard.keys", by przekonaê sië o tym,
jak standardowo obîoûone sâ poszczególne klawisze. Istnienie tego
pliku nie jest bezpodstawne, moûna bowiem, bazujâc na jego
strukturze, utworzyê inny plik -- "Default.keys", zawierajâcy nasze
wîasne definicje obîoûeï klawiszy. Plik ten bëdzie nastëpnie
automatycznie wczytywany podczas uruchamiania programu.
Przykîad i opis struktury pliku "Default.keys" pokazuje LISTING
3. Plik ten jest tylko przykîadem, wiëc za duûo sië w nim "nie
dzieje". Po prostu ma tam miejsce obîoûenie klawisza funkcyjnego
[F10], tak ûe po jego wciôniëciu moûemy zmierzyê odlegîoôê na
obrazku poprzez uruchomienie komendâ ImageFX-a HOOK moduîu typu
hook, o nazwie Measure. Jak widaê, jest to obîoûenie globalne.
<l>
; LISTING 3
; Key definitions for ImageFX
;
; Przykîad pliku "Default.keys" - definicji obîoûeï klawiszy
; w programie ImageFX.
;
; Nazwa moûe byê inna, w tym wypadku naleûy wczytaê go przy uûyciu
; gadûetu LOAD KEYS... w panelu PREFERENCES programu ImageFX.
;
; Opis skîadni:
;
; ; linia komentarza
;
; TYTUÎ: nazwa sekcji, do której odnosi sië
; przypisanie, tzn. MAIN (GLOBALNIE)
; oraz TBOX do sekcji (TOOLBOX)
;
; KOMBINACJA_KLAWISZY "KOMENDA(;KOMENDA;...)"
;
;--------------------------------------------------------------------------
MAIN:
F10 "HOOK ImageFX:Hooks/Measure"
TBOX:
;-------------------------------------------------------------------------
<txt>Oczywiôcie moûemy sobie zdefiniowaê kilka obîoûeï klawiszy
(na róûne okazje) w postaci kilku plików o strukturze
"Default.keys", ale o innych nazwach. By z nich skorzystaê,
wystarczy w panelu PREFERENCES ImageFX-a kliknâê na LOAD KEYS...
(patrz rys. 2.) i wskazaê odpowiedni na danâ okazjë plik,
zawierajâcy aktualnie wymaganâ deklaracjë obîoûenia klawiszy.
Najciekawsza moûliwoôê przypisania klawiszowi odpowiednich
funkcji istnieje w samym programie. W trakcie pracy moûe nam
przyjôê bowiem ochota na przypisanie klawiszowi funkcji.
Wystarczy wtedy wcisnâê kombinacjë klawiszy [Shift]+[Help],
nastëpnie definiowany klawisz lub kombinacjë klawiszy, w
pojawiajâcym sië panelu wpisaê komendë ImageFX-a (lub komendy
rozdzielone znakiem ";"), z kolei nowy klawisz i nowa definicja
itd., a na koïcu znowu [Shift]+[Help]. Po dokonaniu niezbëdnych
zmian moûna tak zmodyfikowane obîoûenia klawiszy zapisaê do pliku
przy uûyciu SAVE KEYS... w panelu PREFERENCES (rys. 2.).
Przykîadowâ sesjë definicji obîoûenia klawisza [F10], tak by
realizowaî on funkcjë z LISTINGU 3., pokazuje rys. 3.
<sr>Toolbox -- kameleon
<txt>Najwiëksze moûliwoôci ingerencji w wyglâd i zachowanie
programu daje zmiana zawartoôci panela TOOLBOX. Potencjalne
zmiany mogâ siëgaê tak daleko, ûe po ich dokonaniu nowy TOOLBOX
bëdzie nie lada zaskoczeniem dla osoby, która do tej pory
pracowaîa z ImageFX-em o standardowym wyglâdzie tego panela.
Zastosowaï zaô jest doprawdy bez liku, od "nagiëcia" programu w
kierunku jakichô specjalizowanych zastosowaï (np. efekty,
operacje na kolorach, transformacje itp.), koïczâc na moûliwoôci
spolszczenia nazw opcji tego panela. W tym celu najlepiej
najpierw zajrzeê do pliku "Standard.toolbox", w którym znajduje
sië standardowa definicja TOOLBOX, i na jego podstawie utworzyê w
katalogu programu ImageFX plik "Default.toolbox", który, jak sië
zapewne domyôlacie, wczytywany przez ImageFX przy starcie
programu bëdzie okreôlaî zawartoôê panela TOOLBOX.
Przykîad i strukturë tego pliku objaônia LISTING 4., w którym
pokusiîem sië o spolszczenie opcji SIZE i doîoûenie kilku nowych
opcji skalowania.
<l>^-
; LISTING 4
;
; Przykîad pliku "Default.toolbox" okreôlajâcego zawartoôê
; panela Toolbox w programie ImageFX.
; Nazwa moûe byê inna, w tym wypadku naleûy w ikonie uruchamiajâcej
; program ustawiê parametr (tooltype) TOOLCONFIG tak, by zawieraî të
; nazwë, tzn.
; "TOOLCONFIG=Ôcieûka_dostëpu/NazwaPliku"
;
; Opis skîadni:
;
; ; linia komentarza
;
; #: gadûet bez zmiany
;
; TYTUÎ_GADÛETU:
; "TYTUÎ_KOMENDY" KOMENDA(;KOMENDA;...)
;
; lub
;
; TYTUÎ_GADÛETU:
; "TYTUÎ_PANELA"
; "TYTUÎ_1_POZYCJI" KOMENDA(;KOMENDA;...)
; "TYTUÎ_2_POZYCJI" KOMENDA(;KOMENDA;...)
; _S litera wyróûniona w tytule
; "" odstëp pomiëdzy pozycjami
;
; P R Z Y K Î A D
; Pierwszy Rzâd Gadûetów
#:
#:
#:
Ro_zmiar:
"Rozmiar - Operacje"
"_Skaluj..." "Scale"
"25 %" "Scale 25 25 PERCENT"
"50 %" "Scale 50 50 PERCENT"
"75 %" "Scale 75 75 PERCENT"
"150 %" "Scale 150 150 PERCENT"
"200 %" "Scale 200 200 PERCENT"
""
"_Obetnij..." "Crop"
"Obetnij Au_tomatycznie" "Crop Auto"
""
"Ustaw _Aspekt..." "SetAspect"
; Drugi Rzâd Gadûetów
#:
#:
#:
#:
#:
; Trzeci Rzâd Gadûetów
#:
#:
#:
#:
#:
;-------------------------------------------------------------------------
^+
<txt>Jedna uwaga: liczba opisanych w pliku nowych TYTUÎÓW
GADÛETÓW (lub odpowiadajâcych znaków "#:", co oznacza, ûe nie
zmieniamy standardowego przypisania opcji do tego gadûetu) musi
wynosiê dokîadnie 14. Gadûety sâ rozmieszczone tak, jak to
pokazuje rys. 4 A, tzn. w kolejnoôci od lewego górnego rogu
TOOLBOX do prawego dolnego. KOMENDY to opisywane juû w tym
artykule komendy ImageFX-a. Jeûeli w komendzie wystëpuje
koniecznoôê uûycia " (cudzysîowu), wtedy caîoôê definicji danej
opcji (tzn. wszystkie komendy separowane znakiem ";") ujmujemy w
znaki ' (apostrof). Efekt moich zmian przedstawia rys. 4 B.
Zamiast pliku "Default.toolbox", który za kaûdym razem bëdzie
wprowadzaî zmiany w panelu TOOLBOX, lepszym rozwiâzaniem jest
utworzenie potrzebnych nam wariantów panelu TOOLBOX, zapisanych w
plikach o róûnych nazwach (np. My.toolbox, Efekty.toolbox itp.),
i nastëpnie skorzystanie z moûliwoôci okreôlania w pliku ikony,
za pomocâ której uruchamiamy program (odpowiedni parametr, ang.
tooltype), jaki plik ma byê uûyty po starcie programu. Po
dokonaniu tego bëdziemy mieli róûnâ postaê panela TOOLBOX, w
zaleûnoôci od ikony uruchamiajâcej program.
W tym celu najlepiej skopiowaê plik "ImageFX_WB.info", zmieniê
jego nazwë na np. "My_ImageFX.info", nastëpnie z poziomu
Workbencha wskazaê të ikonë, wyôwietliê informacje o niej (rys.
5.) i zmodyfikowaê parametr:
<l>TOOLCONFIG=ImageFX:My.toolbox
<txt>Od tej pory kaûdorazowe uruchomienie programu ImageFX przy
uûyciu ikony "My_ImageFX" (a nie ikony standardowej "ImageFX")
sprawi, ûe zawartoôê panela TOOLBOX bëdzie taka, jakâ
zadeklarowaliômy w pliku "My.toolbox". Plik "Default.toolbox"
bëdzie przy starcie pominiëty.
Myôlë, ûe wyposaûeni w opisane w tym artykule "narzëdzia" z
îatwoôciâ dokonacie nawet bardzo drastycznych "operacji
plastycznych" na programie ImageFX, kreujâc jego nowe, bardziej
funkcjonalne, oblicze.