Ŀ
 ************************************************************ 
 **************  IMAGE LIBRARY  1995/1996  ***************** 
 ************************************************************ 
 **************        Martin Hejral        ***************** 
 ************************************************************ 




Co je to?


IMAGE LIBRARY je knihovna uren pro snadn, jednoduch a rychl psan 
grafickch aplikac v jazyku C. Jejm prvotnm smyslem je zbavit 
ckov programtory problmu, kter se vyskytuje zcela urit u 
kadho solidnho grafickho softwaru, toti nutnost uschovvat a 
optn natat obrzky.
Nemuste u vce zpolit s programovnm diskovch operac a mete 
vce asu vnovat "svmu" problmu. Knihovna je zamena na pouit 
_standardnch_, _rozench_ a _jednoduchch_ grafickch formt. 
Jako ponkud neobvykl funkce je zaazeno pehrvn animac, zatm 
pouze ve formtu Cyber Paint SEQ.
Druhou skupinou jejch vlastnost je schopnost pevst bitmapov data 
do formtu obrazovky a tak tyto data zobrazit. Sem pat tak rzn 
konverze pamovch formt, redukce barev a dithering.
Ve tet skupin jsou zaazeny grafick kreslc fukce. Nkter 
pracuj v 5-6-5 true color grafickm reimu: Jsou to pedevm 
kreslen s antialiasingem, kter nepodporuje normln VDI a dle nap. 
generovn barevnch pechod. Myslm, e dal velice pjemnou 
monost je naten a pouit standardnch GEM GDOS bitmapovch font, 
a to _BEZ_rezidentnho_GDOSu_!

IMAGE LIBRARY je knihovna uren pro pouit v PURE C / TURBO C na 
Atari ST a dalch TOS kompatibilnch potach. Obsahuje tak 
nkter funkce vyuvajc speciln vlastnosti Falcon. Nen mi 
znmo, zda se formt knihovny neshoduje s dalmi odrdami C na Atari 
(pokud to nkdo vte ozvte se), a zda jej tedy lze pout i s C 
jinch vrobc.



Funkce:


Zde nejsou zatm podrobn popsny vechny implementovan funce, ale 
spe jen jejich rozdlen do skupin podle typu innosti a zsady 
jejich pouit. Definice vech rutin naleznete v hlavikovm souboru 
IMGPROC.H, zatmco IMGHEAD.H obsahuje definice datovch typ a 
nkterch globlnch promnnch definovanch v IMAGE LIBRARY. 
Deklarace z tohoto souboru jsou nutn i pro IMGPROC.H a mus bt tedy 
vkldny dve.
Demonstraci vtiny funkc obsahuje program IMAGE.C, kter je napsn 
jako hotov kostra GEM programu.
Vsledn hodnota funkc
     - obecn plat, e funkce vrac zpornou hodnotu v 
     ppad chyby (nejastji to me bt nap. soubor 
     nenalezen, diskov chyba, nedostatek pamti) pokud 
     zrovna nem tato hodnota funkn vznam (co plat 
     prakticky jen pro funkce rgb2falc(), g_color(), 
     get_cookie(), stick() ).

Inicializace


     int init_imglib(void);
- voln tto funkce je nutn zaadit na zatku vech aplikac 
vyuvajcch IMAGE LIBRARY.

     int true_colour(int mode);
- zapnut/vypnut TC grafiky na Falconovi, pi zapnn nutno volat 
jet ped inicializac IMAGE LIBRARY.

     void restore_palette(void);
- obnov stav barvov palety (barvovch registr), kter byl 
automaticky uloen pi inicializaci funkc init_imglib(). Doporuuje 
se volat vdy pi ukonen aplikace.

ten a zpis


Ŀ
 graf. formt  ten         zpis         poznmky     
Ĵ
 CA?             1             0           CrackArt     
 GIF             1             0                        
 IFF             1             0                        
 IMG             1             1                        
 RAW             1             0                        
 SEQ             1             0           animace      
 TGA             1             1           jen TC       


- GIF - vborn ale asov nron komprese, vhodn pro penos na jin 
        potaov platformy, je bohuel omezen na max. 256 barev, 
        IMAGE LIBRARY zatm nepodporuje prokldan formt
- IMG - maximln doporuen jako standardn formt GEMu (vetn 
        penosu pes clipboard), dobr (pro "uml" obrzky) a hlavn 
        rychl komprese RLE
- TGA - pro ukldn a penos TC obraz na jin platformy, IMAGE 
        LIBRARY zatm podporuje jen type '2' uncompressed (co nap. 
        ale sta pro penos z/do programu Photoshop)

Zobrazen


     void show_image(int x,int y,int w,int h,int x2,int y2,IMAGE *img);
- vykresl obraz *img, pokud tento obsahuje data ve formtu obrazovky
  x,y .... umstn vykreslovanho vezu v rmci celho obrazu
  w,h .... ka a vka vykreslovanho vezu obrazu
  x2,y2 .. pozice na monitoru

Nsledujc vpis ukazuje sprvn postup pi natn obrazu (namsto 
funkce read_img() lze pirozen dosadit libovolnou read_???() rutinu):

...
error=read_img("XYZ.IMG",&i);
/* mon oeten chyb */
if(error==-39) {
     fprintf(stderr,">>> No memory for picture\n");
     return;
}
if(error) {
     fprintf(stderr,">>> Bad or missing file\n");
     return;
}
...
/* konverze do formtu obrazovky (specific format) */
nat2spec(&i);
/* nastaven barvov palety */
set_palette(handle,&i);
/* zobrazen cel kresby na monitoru */
show_image(0,0,i.width,i.height,xpos,ypos,&i);
...
delete_image(&i);
...

Kreslen


Pklad pouit font:

...
/* naten a psan se standardnmi GEM fonty */
read_font("C:\\FONTS\\SHSS23.FNT",0);   /* ti font 0 */
text_font(0);       /* zvol font 0 */
text_color(LYELLOW);     /* barva psma */
gprint("ABCDEabcde12345", 44, 44);
delete_font(0);
...

...
/* antialias fonty v TC reimu */
read_font("C:\\FONTS\\SHSS23.FNT",0);
/* nsledujc funkce vyhlazuje specilnm algoritmem bitmapov znaky */
/* vsledek nemus bt vdy ideln, ale u vtch velikost vyhovuje */
create_afont(0);
text_color(0xFFE0);
aprint("ABCDEabcde12345", 44, 88);
delete_font(0);
...

Joystick:


Zde naleznete nkolik pkaz zvlt vhodnch k programovn her :-)

     void stick_on(void);
- zapne ten pvodnch ST joystick (souasn pestv fungovat my), 
nen nutn pro ten joypad nebo klasickch joystick zapojench v 
joypad portech (STE, FALCON)

     void stick_off(void);
- opt zapn my

     int  stick(int num); 	/* read joystick status */
- te stav joystick:
  ------------------------------------------------
  slo	joystick
  ------------------------------------------------
  0/1	ST vstup 0/1
  2..5	joysticky zapojen v joypad portech
	(zatm neimplementovno)
  ------------------------------------------------



Historie:


verze

0.19 - 5.5.1996 - prvn uvolnn verze, nen zaruena naprost 
       bezchybnost, nejsou zatm implementovny redukce barev a 
       dithering, nedokonen dokumentace
     - plnovan rozen: texturovan psmo, prav antialiasing 
       font s vyuitm SPEEDO GDOS, ukldn GIF, natn PC? a PI?, 
       vylepen prce s TGA formtem, FLI animace, prce s TC obrzky 
       ve vrstvch (prolnn, stn, nsoben, maskovn, ...), 
       podpora formtu GEM, ten (Jaguar) joypad ovlada, ???
     - aplikace - ji hotov je pehrva SEQ animac pro libovoln 
       16barevn grafick md zen z pkazov dky, nsledovat 
       bude podobn pehrva AVS (audio-video sekvence: SEQ + samply)



Copyright:


     - distribuce v souasn dob probh jako FREEWARE a nikdo tedy 
       _nesm_ poadovat za tento software vce ne minimln 
       distribun poplatek. IMAGE LIBRARY lze samozejm koprovat 
       pouze v originlnm stavu a to bez jakchkoliv zmn! Autor 
       nezaruuje bezchybnost produktu - proto: Pouit pouze na 
       vlastn nebezpe!!!
     - pokud pouijete knihovnu ve sv aplikaci, uvete tento fakt 
       spolu se jmnem jejho autora pmo v tomto programu. Vzorek 
       vaeho produktu tak pot.



Autor:


       Ing. Martin Hejral
       Rovensko p.Tr. 284
       512 63
       CZECH REPUBLIC
