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;
}
यह आवश्यक डेटा के लिए रहने के पाने के लिए है वस्तुओंकोई भी बिटमैपडाटा में स्ट्रैड के फ़ंक्शन को समझा सकता है?
पंक्ति को नीचे जाने के लिए आगे बढ़कर एक मेमोरी पॉइंटर आगे बढ़ सकें, डेटा.स्ट्रैड इसका मूल उद्देश्य क्या है? मैं आशा यू अब समझ सकता हूँ – Badr