Documente Academic
Documente Profesional
Documente Cultură
Darea de seama
Lucrare de laborator nr. 2
la „Grafica 2D”
A efectuat:Cîrciumaru Ilie
grupa IA21
A verificat : G. Marin
Chişinău 2014
Condiția:
De citit imaginea cu extensia bmp si de a o afisa in in DialogBox utilizind Visual Studio. De implementat efectul
Drag & Drop cu mouse asupra imaginei date.
Imaginea data este pe 4 bits / px.
Codul sursă.
2
void Cl2Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // контекст устройства для рисования
// Нарисуйте значок
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CPaintDC dc(this);
FILE *f = fopen("carpetmall16.bmp","rb");
if(f == NULL) return;
//bufer pentru date initiale
unsigned char b[200];
int n;
int d,w,h; // d - diminsiunea, w - width, h - height
int i,j,k;
//citirea paletei
//16 - 16 culori
for(i=0;i<16;i++){
fread(c,1,4,f);
a[i] = RGB(c[2],c[1],c[0]);
}
3
//scaparea de octeti care sunt umplute cu 0, pentru complementarea liniei
//for(j=0;j<(int) ((float) w / 2 + 0.5) % 4;j++)
fread(c,1,1,f);
}
x2 = x1 + w;
y2 = y1 + h;
fclose(f);
CDialogEx::OnPaint();
}
}
if(clickFlag){
x1 = point.x - dx1 ;
y1 = point.y - dy1 ;
Invalidate();
}
CDialogEx::OnMouseMove(nFlags, point);
}
CDialogEx::OnLButtonDown(nFlags, point);
}
4
Rezultat
5
Concluzie.
Am citit binar fisier bmp si l-am afisat pe pixel pe ecran. Dupa efectuarea lucrării foarte bine am învățat
strcutra fișierului, plus am aflat detalii amplasarii biților în memorie. De asemenea și am lucrat cu biți
utiliînd deplasările și măștile. Am implementat efectul Drag & Drop utiliznd evenimente generate de
lucrul cu mouse.