0

ビットマップの赤チャンネルで 2 つ目の緑チャンネルで 2 つの四角形を描画しようとしています。

これはコードです:

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 番目の四角形を赤色で描画すると、ピクセルが重なっている 1 番目の四角形が 0 に上書きされることです。以前のピクセル値を単純に上書きするのではなく、重なり合ったときに長方形の色を変更したいと思います。IE - 3 つすべてではなく、1 つのチャネルで描画します。

私は特にこのためのグラフィックス操作を探しています。

よろしく、ラオヴ

4

1 に答える 1

0

これは、C#/.NET で 2 つの画像をマージするのに役立つ場合があります

次に、各長方形を独自の画像に描画し、結果をマージできます...

于 2014-11-25T12:28:22.017 に答える