Bitmap bit1 = new Bitmap(bmpimg , width , height);
Bitmap bit2 = new Bitmap(bmp , width , height);
Bitmap bmpresult = new Bitmap(width , height);
BitmapData data1 = bit1.LockBits(new Rectangle(0 , 0 , bit1.Width , bit1.Height) , ImageLockMode.ReadWrite , PixelFormat.Format24bppRgb);
BitmapData data2 = bit2.LockBits(new Rectangle(0 , 0 , bit2.Width , bit2.Height) , ImageLockMode.ReadWrite , PixelFormat.Format24bppRgb);
BitmapData data3 = bmpresult.LockBits(new Rectangle(0 , 0 , bmpresult.Width , bmpresult.Height) , ImageLockMode.ReadWrite , PixelFormat.Format24bppRgb);
unsafe
{
int remain1 = data1.Stride - data1.Width * 3;
int remain2 = data2.Stride - data2.Width * 3;
int remain3 = data3.Stride - data3.Width * 3;
byte* ptr1 = (byte*)data1.Scan0;
byte* ptr2 = (byte*)data2.Scan0;
byte* ptr3 = (byte*)data3.Scan0;
for(int i = 0 ; i < height ; i ++)
{
for(int j = 0 ; j < width * 3 ; j ++)
{
ptr3[ 0 ] = (byte) (XOR_Operator(ptr1[ 0 ] , ptr2[ 0 ]));
ptr1 ++;
ptr2 ++;
ptr3 ++;
}
ptr1 += remain1;
ptr2 += remain2;
ptr3 += remain3;
}
}
bit1.UnlockBits(data1);
bit2.UnlockBits(data2);
bmpresult.UnlockBits(data3);
return bmpresult;
}
es necesario para conseguir permanecer por objetos de datoscualquiera puede explicar la función de zancada en bitmapdata?
en el código dado anteriormente es necesario el uso de data.stride ¿cuál es su propósito básico? espero que pueda entender ahora – Badr