- Home
- No categories
8.1 Proceduri şi funcţii
ImageSize
Functia ImageSize returnează numărul de octeţi necesari salvării unei imagini. Funcţia se defineşte astfel:
Function ImageSize(x1,y1,x2,y1:integer):word;
X1,Y1 reprezintă coordonatele colţului stânga sus ale dreptunghiului;
X2,Y2 reprezintă coordonatele colţului dreapta jos ale dreptunghiului.
GetImage
Procedura GetImage salvează o imagine într-o zonă de memorie definită de utilizator. Procedura se defineşte astfel:
Procedure GetImage (x1,y1,x2,y2:integer;varBitMap);
X1,y1 reprezintă coordonatelor colţului stânga sus ale dreptului, iar x2,y2 reprezintă coordonatele colţului dreapta jos ale dreptunghilui ce se salvează. Se pot salva zone mai mici de 64K octeţi. Variabila BitMap referăzona în care se face salvarea imaginii. Primele două cuvinte ale zonei conţin lăţimea şi lungimea zonei dreptunghiuluilare, de aceea dimensiunea obţinută cu funcţia GetImage.
PutImage
Procedura PutImage suprapune regiunea salvată peste ecran. Procedura se defineşte astfel:
Procedure PutImage(x,y:integer;var:BitMap;BitBlt:word);
X,y reprezintă colţul stânga sus al regiunii dreptunghiular de pe ecran unde va fi restabilită imaginea.
Variabila Bitmap conţine lăţimea, lungimea regiunii şi harta în biţi a imaginii.
Variabila Bitblt descrie operaţia binară între punctele regiunii ce se suprapune pe ecran şi punctele ecranului.
Această variabilă se defineşte astfel:
Const
NormalPut=0; MOV –mutare simplă
CopyPut= 1; MOV – mutare simplă
XORPut=2; XOR –sau exclusiv
OrPut=3; OR – disjuncţie
AndPut=4; AND – conjuncţie
NotPut=5; Not- negaţie
8.2 Aplicaţie
Programul image realizează culorarea ecranului cu albastru, decupează o porţiune din aceasta şi o salvează în memorie după ce sa rezervat spaţiu de memorie necesar salvării, după care este restabilită acea porţiune (imagine).
Uses Graph, Crt;
Var gd, gm:integer;
P:pointer;
Size:word;
Begin
Gd:=detect;
InitGraph (Gd, Gm, ’c:bpbgi’);
If graphresult <> grOK then
Halt(1);
SetFillStyle (1.1);
Bar(0.0.GetMaxX.GetMaxY);
Size :=ImageSize (1.20.30.40);
GetMen(p,Size);
GetImage(10.20.30.40.p^);
Readln;
ClearDevice;
PutImage(100.100.p^,xorput);
Readln;
CloseGraph;
end.
Articole Asemănătoare:
Recent Comments