[c++.Net] Parcours des pixels d'une image
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:
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