CATEGORII DOCUMENTE |
Agricultura | Asigurari | Comert | Confectii | Contabilitate | Contracte | Economie |
Transporturi | Turism | Zootehnie |
Formatele de reprezentare a informatiei grafice
Fiecare dintre programele de aplicatie (de desenare, de prelucrare texte sau baze de date) are cate o functie prin care rezultatul muncii lor este memorat intr-un fisier al carui nume este continut in directorul dischetei sau harddisk-ului. Imaginea fisierului sau continutul propriu-zis poate fi dezvaluita, doar cu programul cu care a fost creata. Formatele grafice sunt formate ale fisierelor utilizate de programele de grafica. Numele unui astfel de fisier este format din prefix sau nume (maxim opt caractere, urmate de un punct, date de catre utilizator) si extensia (se pune dupa punct si este formata din maximul trei caractere stabilite, de regula recunoscute automat de program).
Formatele grafice se pot clasifica in doua mari grupe:
Formatele grafice vectoriale sau orientate pe obiecte. Acestea au fost initial dezvoltate pentru proiectarea asistata de calculator, dar datorita performantelor lor se aplica si in alte domenii. Liniile , patratele, cercurile etc. sunt tratate ca obiecte asupra carora se pot executa toate transformarile: translatie, rotatie, scalare, deformare, colorare sau schimbare a culorii. Toate programele de grafica vectoriala au formate proprii de date. Cele mai importante sunt:
DRW (utilizeaza curbele Bezier si poate folosi 16.7 mil. de culori);
GRF (formatul programului Charisma pentru grafica economica);
PIC (format folosit de Lotus 1-2-3);
CDR (formatul pentru Corel Draw);
EPS, PS (foarte raspandit in Desktop Publishing)
Pict (QuickDraw Picture Format) este cel mai popular format de pe platforma MacIntosh, definit de Apple Computer etc.
Formatele grafice orientate pe pixeli (bitmap). Inmagazinarea si administrarea imaginilor se face punct cu punct. De aceea aceste formate sunt bine utilizate in prelucrarea si retusarea imaginilor prelucrate pe un calculator printr-un scaner sau o camera video.
Unele formate sunt legate direct de un program grafic care scrie / citeste exact acel format:
GIF (foloseste 256 de culori dintr-o paleta de 262144 culori; utilizat numai de Autodesk Animator);
TGA (prelucreaza profesional imagini si le retuseaza);
SCX (memoreaza imagini cuprinse intre 320x200 puncte cu patru culori si 1024x768 puncte cu 256 culori simultan);
MAC (raspandit de Apple MacIntosh poate fi convertit in alte formate cu ajutorul utilitarelor);
PCX (cvasi-standard, poate fi citit de aproape toate programele Desktop Publishing si poate reprezenta maximum 256 culori dintr-o paleta de 262144);
TIF (cvasi-standard mai ales pentru domeniul profesional si semiprofesional);
GEM (definit de Digital Research pentru aplicatii proiectate sub suprafata grafica GEM, a fost utilizat de mai multe aplicatii DTP (Ventura) si este folosit pentru reprezentarea imaginilor alb negru);
BMP ( utilizat pentru afisarea si memorarea imaginilor sub MGWindows; este similar formatului PCX sau Raster);
XBM (X Windows Bitmap);
WMF (Windows Metafile) etc.
In tabelul 3.2 se prezinta o serie de formate graficesi programe care lucreaza cu ele. Se observa existenta si a formatelor acceptate de imprimante: EPS (Encapsulated PostScript), HPGL (Hewlett Packard Printer) etc. In plus intre aceste formate sxista diferente si in ceea ce priveste definirea culorii.
Tabelul 3.2. Formatele grafice
Software grafic |
Format fisier grafic |
Lotus 1-2-3 |
PIC, PCX, CGM |
Adobe Ilustrator |
EPS |
AutoCAD |
HPGL, DXF,DWG |
Designer |
HPGL, CGM, EPS, PCX, TIFF |
Windows Paint |
MSP |
Draw perfect |
CGM, HPGL,HPG |
Freelace |
CGM |
GEM Scan |
IMG, TIFF |
HP Graphics Gallery |
TIFF, PCX |
Paradox |
PIC |
PC Paintbrush |
PCX |
WGA Paint |
WPG, PCX, TIFF |
Qatro Pro |
PIC, EPS |
Autodesk Animator |
GIF |
Windows PaintBrush |
BMP |
Corel Draw |
CDR |
Ventura |
GEM, PCX |
XWindows |
XBM |
Qark Press |
DCS |
Truevision |
Targa |
Imaginile de tip bitmap sunt foarte mari. Volumul de date poate depasi un harddisc, cerand in consecinta mult timp de citire/scriere. Majoritatea produselor grafice folosesc tehnici de compactare a datelor bazate pe algoritmi diferiti de la o forma la alta. O tehnica de compactare a datelor de catre software-ul grafic al unui PC este RLE (Run Length Encoding). Compactarea este orientata orizontal pentru ca si memoria video este de obicei astfel orientata. Metoda foloseste doua aspecte:
pixelii invecinati orizontal au aceeasi valoare;
de obicei exista un spatiu destul de mare de linii-ecran, care definesc fondul desenului (deci au aceeasi culoare).
Se vor memora astfel secvente de valori repetate, alcatuite din numarul de repetari si valoarea pixelului repetat. In general se folosesc proceduri hibride, pe unele portiuni fiind mai eficienta o schema de memorare directa (daca pixelii unei linii orizontale sunt diferiti).
In acelasi timp trebuie asigurata posibilitatea de decompactare; structura va trebui sa contina si delimitatorii care sa indice ce fel de codificare urmeaza (RLE sau directa). Desi se obtin structuri de date destul de complicate pe ansamblu, ele sunt deterministe si pot fi decompactate exact.
Tratarea imaginilor bitmap in diferite formate, constituie o problema din punct de vedere al volumului de date, dar si din acela al existentei multitudinii formatelor si variantelor acestora (vezi anexa 1). O interfata capabila sa trateze cel putin formatele uzuale de pe piata (TIF, TGA, BMP, PCX, GIF) trebuie construita din tot atatea seturi de rutine si interpretoare specifice fiecaruia.
O solutie pentru realizarea unei interfete cvasi-universale intre un program de aplicatie grafica si o imagine bitmap intr-un format oarecare este disponibila prin facilitatile oferite de programarea orientata pe obiect. O asemenea interfata se va axa pe definirea unei clase de obiecte, iar procedurile vor lucra ca instantieri ale clasei.
La ora actuala exista pe piata programe utilitare care executa conversiile formatelor grafice. Astfel:
Hijaak, executa 'fotografierea' ecranului si prelucreaza imaginea obtinuta;
Xport, lucreaza sub suprafata utilizator Windows; este folosit pentru conversia formatelor grafice vectoriale DRW,GEM, CGM, Mac, PICT, DXF avand ca intrare si/sau iesire pe oricare dintre formatele amintite;
Bridge, un utilitar sub Windows, transfera date din GEM in PIC, din IMG in MSP, din IMG in PCX si din DOC in WRI:
VPIC,vizualizeaza formatele bitmappe ecran (gif, Mac, Zsoft, PCX, Pictor, Dr. Halo Cut, TGA, Deluxe Paint, Colorix/EGA paint SCX) si obtine urmatoarele formate de iesire: PCX, Pic, GIF, Colorix SCX, TGA, CUT;
GCP converteste formate bitmap, lucreaza sub Windows, recunoaste la intrare/iesire formatele MSp, Macpaint, GIF, HP PCL, BMP, Windows Cursor, Windows Icon;
Pizza, utilitar sub DOS, care acpteaza imaginile ecran, le prelucreaza, retusaza si le scoate la imprimanta sub diverse dimensiuni;
TGL Plus, utilitar sub DOS care transforma, scaleaza, combina formatele grafice PCX, Gif, BMP, Tiff etc;
PhotoFinish, utilitar sub Windows care prelucreaza, capteaza (ZCapture) si transforma diverse formate grafice PCX, BMP, GIF etc.;
PhotoShop, utilitar sub Windows, care realizeaza prelucrari ale imaginilor, scanari, corectii de culoare, transformari etc.;
Paint Shop Pro, utilitar sub Windows, care realizeaza prelucrari ale imaginilor, scanari, corectii de culoare, luminanta, rasterizari, capturari de imagini, animatii, transformari etc..
Sub Windows, conversia de formate grafice se poate realiza prin intermediul unei 'magazii intermediare' (Clipboard). Cu ajutorul mouse-lui se poate selecta un obiect din programul grafic si copia apoi in clipboard de unde se va putea prelucra si insera intr-o imagine ce apartine unui alt program.
Exista si pachete de programe (Micrografix Designer, Fractal Poser, Corel Draw, Art & Letter) care pe langa functii complexe de desenare si design, executa si importuri/ exporturi de formate grafice.
Pentru exemplificarea structurii unui fisier grafic se prezinta un program C de vizualizat imagini memorate in format PCX. Pentru simplificare se trateaza numai modul grafic 0x13, specific VGA.
#include<studio.h>
#include<conio.h>
#include<process.h>
#include<graphics.h>
#include <dos.h>
struct ant
antet;
void main(int argc, char *argv[])
val2[8] =, w, act ;
unsigned char z[2500],bt;
char far *inceput_ecran;
union REGS regs;
int i, j, i1, j1, k, t, x, y,dx,dy;
if (argc !=2)
/*Test de apel indicind numele fisierului de vizualizat*/
if ( (fisier=fopen(argv[1],'rb') )==NULL)
if (fread(&antet,128,1,fi;ier) !=1| | antet.cod !=10)
fflush (stdin);
printf ('n Cod : %d ', antet.cod);
printf ('n Versiune : %d ', antet.vers);
printf ('n Comprim. : %d ',antet.compr);
printf ('n Biti/pixel : %d ', antet.btperpixel);
printf ('nx1=%d y1=%d x2=%d y2=%d', antet.x1, antet.y1, antet.x2, antet.y2);
printf ('nPlane :%%', antet.plane);
printf ('nOcteti pe linie: %d', antet.octperlin);
dx =antet.x2 -antet.x1+1;
dy = antet. y2 -antet.y1+1;
regs.x.ax=0x13;
int86(0x10,®s,®s);
/* Intrare in modul 0x13 VGA */
outpw (0x03c4, 0x604);
outpw (0x03c4, 0x100);
outp (0x03c2, 0xc7);
outpw (0x03c4, 0x300);
outp (0x03d4, 0x11);
k =inp(0x03d5); k &=0x7f;
outp (0x03d5, k);
for (i=0; i<9; i++)
for (i=0; i<8; i++)
outpw (0x3c4, 0xf02);
inceput_ecran =(char far *)0xA0000000;
for (i=1; i<=480*90; i++) inceput_ecran [i]='xff';
/* Initialiyare memorie video */
y=0; act=0;
while ( y<dy &&!feof(fisier)
for (x=1;x<= w; x++)
if (act>= dx)
act=0; y++;
}
fclose (fisier); printf( 'a');
getch ();
/* Se asteapta pentru apasarea unei taste */
regs.h.ah=0x00; regs.h.a1=0x03;
int86 (0x10, ®s, ®s);
/* revine in modul 0x03 */
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1457
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved