كيفية القيام بما يلي: استخدم مصفوفة ألوان إلى قيم أولي التعيين في الصور

The Bitmap فئة (which inherits من the Image فئة) و the ImageAttributes فئة provide functionality for getting و إعداد pixel قيم. You can استخدم the ImageAttributes فئة إلى تعديل the أولي قيم for an entire نسخة, أو you can يتصل the SetPixel أسلوب of the Bitmap فئة إلى تعديل individual pixel قيم.

مثال

The ImageAttributes فئة has many خصائص that you can استخدم إلى تعديل صور during رسم هندسي. في the following مثال, an ImageAttributes كائن هو used إلى التعيين الجميع the أولي قيم إلى 80 ‏‏نسبة مئوية of what they were. This هو done بواسطة initializing a اللون مصفوفة و إعداد the أولي scaling القيمة في the مصفوفة إلى 0.8. العنوان مصفوفة الألوان هو التي تم تمريرها إلى SetColorMatrixأسلوب ImageAttributesالكائن، و ImageAttributesالكائن هو التي تم تمريرها إلى DrawStringأسلوب Graphicsالكائن.

أثناء رسم هندسي، يتم محول قيم أولي في الصورة النقطية إلى 80% من ما كانت. Th هو ينتج عن نسخة التي هو ممزوج مع الخلفية. كـ يبين المثال التالي، تبدو النسخة نسخة نقطية شفاف; يمكنك مشاهدة خط أسود صلب ، مصمط عبره.

خلط ألفا باستخدام مصفوفة

الموقع الصورة هو عبر الجزء الأبيض للخلفية، الصورة قد تم ممزوج باللون الأبيض. الموقع نسخة تقاطع خط أسود، نسخة هو ممزوج باللون الأسود.

// Create the Bitmap object and load it with the texture image.
Bitmap bitmap = new Bitmap("Texture.jpg");

// Initialize the color matrix.
// Note the value 0.8 in row 4, column 4.
float[][] matrixItems ={ 
   new float[] {1, 0, 0, 0, 0},
   new float[] {0, 1, 0, 0, 0},
   new float[] {0, 0, 1, 0, 0},
   new float[] {0, 0, 0, 0.8f, 0}, 
   new float[] {0, 0, 0, 0, 1}};
ColorMatrix colorMatrix = new ColorMatrix(matrixItems);

// Create an ImageAttributes object and set its color matrix.
ImageAttributes imageAtt = new ImageAttributes();
imageAtt.SetColorMatrix(
   colorMatrix,
   ColorMatrixFlag.Default,
   ColorAdjustType.Bitmap);

// First draw a wide black line.
e.Graphics.DrawLine(
   new Pen(Color.Black, 25),
   new Point(10, 35),
   new Point(200, 35));

// Now draw the semitransparent bitmap image.
int iWidth = bitmap.Width;
int iHeight = bitmap.Height;
e.Graphics.DrawImage(
   bitmap,
   new Rectangle(30, 0, iWidth, iHeight),  // destination rectangle
   0.0f,                          // source rectangle x 
   0.0f,                          // source rectangle y
   iWidth,                        // source rectangle width
   iHeight,                       // source rectangle height
   GraphicsUnit.Pixel,
   imageAtt);

التحويل البرمجي للتعليمات البرمجية

The preceding example is designed for use with Windows Forms, and it requires PaintEventArgs e, which is a parameter of PaintEventHandler.

راجع أيضًا:

موارد أخرى

الرسومات و رسم في Windows Forms

خلط أولي خطوط التعبئة و