bonjour a tous!!j'essaye d'utiliser la fonction ScanLine mais je n' y arrive pas! j'ai trouvé des exemples sur ca mais j'ai pas vraiment compri!! donc si qq'un connait ca serait cool et gentil k'il m'explique cela !!!
merci a vous
bonjour a tous!!j'essaye d'utiliser la fonction ScanLine mais je n' y arrive pas! j'ai trouvé des exemples sur ca mais j'ai pas vraiment compri!! donc si qq'un connait ca serait cool et gentil k'il m'explique cela !!!
merci a vous
Tenez, voici un mien petit programme qui modifie légèrement une image quelconque par clics successifs, ça vous donnera les syntaxes d'accès qui sont importantes. On lit une image ligne après ligne et on agit sur ses couleurs.
À bientôt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 void __fastcall TForm1::Button2Click(TObject *Sender) { int i,j; double n, p, pr, pv, pb ; BYTE *col, *row; p = 0.05; pr=0.30*p; pv=0.59*p; pb=0.11*p; for(i=0; i<Image1->Picture->Bitmap->Height; i++) { row = (BYTE*)Image1->Picture->Bitmap->ScanLine[i]; for(j=0; j<Image1->Picture->Bitmap->Width; j++) { col = (BYTE*)(row + j*3); col[0] = RatCol(col[0],pr); col[1] = RatCol(col[1],pv); col[2] = RatCol(col[2],pb); } } Image1->Refresh(); } //----------------------------------------------- int __fastcall TForm1::RatCol(int c, double r) { c+=c*r; if(c>255) c=255; if(c<0) c=0; return c; }
Gilles
Salut !
Attention quand même à bien différencier les bitmaps 24 bits des bitmaps 8 bits. Pour ces derniers, ScanLine renvoie un simple index qui correspond à l'une des 256 couleurs stockées dans la palette.
A plus !
merci pour vos reponses !!je vais essayer tout de suite!!!a+
j'ai envi de faire l'erosion d'une image avec scanline()!!je sais pas est cela est possible ou non????? merci
J'avoue ne pas savoir ce que c'est.
S'il s'agit d'un effet quelconque sur l'image, c'est forcément possible, encore que l'algorithme peut être très difficile.
À bientôt
Gilles
Partager