كيفية القيام بما يلي: استخدم مصفوفة ألوان إلى قيم أولي التعيين في الصور
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.
Dim bitmap As New Bitmap("Texture.jpg")
' Initialize the color matrix.
' Note the value 0.8 in row 4, column 4.
Dim matrixItems As Single()() = { _
New Single() {1, 0, 0, 0, 0}, _
New Single() {0, 1, 0, 0, 0}, _
New Single() {0, 0, 1, 0, 0}, _
New Single() {0, 0, 0, 0.8F, 0}, _
New Single() {0, 0, 0, 0, 1}}
Dim colorMatrix As New ColorMatrix(matrixItems)
' Create an ImageAttributes object and set its color matrix.
Dim imageAtt As 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.
Dim iWidth As Integer = bitmap.Width
Dim iHeight As Integer = bitmap.Height
' Pass in the destination rectangle (2nd argument) and the x _
' coordinate (3rd argument), x coordinate (4th argument), width _
' (5th argument), and height (6th argument) of the source rectangle.
e.Graphics.DrawImage( _
bitmap, _
New Rectangle(30, 0, iWidth, iHeight), _
0.0F, _
0.0F, _
iWidth, _
iHeight, _
GraphicsUnit.Pixel, _
imageAtt)
// 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.