بسم الله الرحمن الرحيم
أقوم بمحاولة كتابة تابع يفوم بتحويل الصورة الملونة الى رمادية فكتبت عة محاولات بعضها كان ناجحا و الاخر لا لكن الكود المكتوب في برنامج كان أسرع ففمت بنسخ الكود و محاولة فهمه و تنفيذه و لكن في التنفيذ أظهر الصورة بشكل خاطئ
الكود هو التالي
(iplab )
protected unsafe void Grayscale( BitmapData sourceData, BitmapData destinationData )
{
// get width and height
int width = sourceData.Width;
int height = sourceData.Height;
int srcOffset = sourceData.Stride - width * 3;
int dstOffset = destinationData.Stride - width;
// do the job
byte * src = (byte *) sourceData.Scan0.ToPointer( );
byte * dst = (byte *) destinationData.Scan0.ToPointer( );
// for each line
for ( int y = 0; y < height; y++ )
{
// for each pixel
for ( int x = 0; x < width; x++, src += 3, dst ++ )
{
*dst = (byte)( cr * src[RGB.R] + cg * src[RGB.G] + cb * src[RGB.B] );
}
src += srcOffset;
dst += dstOffset;
ربما كان استدعيه التابع عندي خطأ هل لي ان اعرف كيف استدعيه بشكل صحيح
علما انني استخدمت
src[0]بدلا من src[rbg.r]