Я пытаюсь нарисовать 2 прямоугольника 1 в зеленом канале 2-й в красном канале растрового изображения.C# чертежный прямоугольник в определенном цветовом канале
Это код:
Bitmap bitmap_guess = new Bitmap(C_PALETTE_X_PIXEL_MAX, C_PALETTE_Y_PIXEL_MAX, PixelFormat.Format24bppRgb);
Graphics graphics = Graphics.FromImage(bitmap_guess);
Rectangle box_rect = new Rectangle(0, 0, C_BOX_PIXELS_WIDTH, C_BOX_PIXELS_HEIGHT);
matrix = new Matrix();
matrix.RotateAt(thc, new System.Drawing.PointF(xc, yc), MatrixOrder.Prepend);
graphics.Transform = matrix;
graphics.FillRectangle(new SolidBrush(Color.Green), xc, yc, box_rect.Width, box_rect.Height);
matrix = new Matrix();
matrix.RotateAt(th, new System.Drawing.PointF(x, y), MatrixOrder.Prepend);
graphics.Transform = matrix;
graphics.FillRectangle(new SolidBrush(Color.Red), x, y, box_rect.Width, box_rect.Height);
Проблема заключается в том, что когда я рисую 2-й прямоугольник красного цвета переписывает 1st прямоугольники перекрывающихся пикселей на 0-х. Я бы хотел, чтобы прямоугольники меняли цвет, когда они перекрываются, вместо того, чтобы явно перезаписывать предыдущие значения пикселей. IE - рисовать в одном канале, а не все 3.
Я специально ищу для этого графическую операцию.
С наилучшими пожеланиями, Laov
Я взял быстрый взгляд, однако я мог не найти ничего, что означало бы, что была передана только информация о одном цветном канале. Кажется, что каждый из предложений просто вставляет одно изображение поверх другого. – Laov