Bonjour,

Voilà j'ai 2 images (png avec couche alpha), je calcule le rectangle d'intersection et je recupere pour chq image les pixels contenus dans ce rectangle...

Mon prob je n'arrive pas à parcourir les pixels de cette portion d'image :

voici mon code :

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
 
	// on recupre les images des 2 objets
	Bitmap^ image1 = ControleurAffichage::GetInstance()->recupererTexture(obj1->GetTexture());
	Bitmap^ image2 = ControleurAffichage::GetInstance()->recupererTexture(obj2->GetTexture());
 
	// on recupere les rectangles des 2 objets
	Rectangle rect1 = Rectangle(obj1->GetPosition(), obj1->GetDimensions());
	Rectangle rect2 = Rectangle(obj2->GetPosition(), obj2->GetDimensions());
 
	// on recupere le rectangle de collision
	Rectangle rectIntersect = rect1; 
	rectIntersect.Intersect(rect2);
 
	// on recupere les pixel de chq image compris dans ce rectangle de collision
    BitmapData^ pixelsImage1 = image1->LockBits(
Rectangle(rectIntersect.X - obj1->GetPosition().X, rectIntersect.Y - obj1->GetPosition().Y, rectIntersect.Width, rectIntersect.Height), 
ImageLockMode::ReadOnly, PixelFormat::Format32bppPArgb);
 
    BitmapData^ pixelsImage2 = image2->LockBits(
Rectangle(rectIntersect.X - obj1->GetPosition().X, rectIntersect.Y - obj1->GetPosition().Y, rectIntersect.Width, rectIntersect.Height), 
ImageLockMode::ReadOnly, PixelFormat::Format32bppPArgb);
 
	// nombre de colonne
    int stride = pixelsImage1->Stride;
 
	// on recupere un pointeur vers le debut des pixels
    IntPtr ptr1= pixelsImage1->Scan0;
    IntPtr ptr2= pixelsImage2->Scan0;
voilà j'ai donc tout recupéré cependant comment parcourir mes ptr1 et ptr2 ?
J'ai essayé avec un trinterpret_cast<Byte*> mais il me donne n'importe quoi (genre -140022..)

EN fait j'aimerai faire une comparaison des pixels des 2 "mouceaux" d'images et voir si les pixels sont transparent ou pas...

merci de votre aide