画像ボックスに色を描画しますか?
-
12-09-2019 - |
質問
C# にはピクチャーボックスがあります。4色描きたいと思っています。デフォルトは白、赤、緑、青です。このピクボックスにこれらの 4 色を並べて描くにはどうすればよいですか?それともピクボックスを4つ持ったほうがいいでしょうか?この場合、RGBカラーを設定するにはどうすればよいですか?
解決
具体的に何を描きたいのかを指定する必要があります。赤を描くことはできません。それは意味がありません。ただし、位置 (0,0) に高さ 100 ピクセル、幅 100 ピクセルの赤い四角形を描画することはできます。ただし、分かる範囲でお答えします。
図形の輪郭を特定の色に設定したい場合は、 ペン 物体。ただし、形状を色で塗りつぶしたい場合は、Brush オブジェクトを使用します。以下は、赤で塗りつぶされた四角形と緑で輪郭が描かれた四角形を描画する方法の例です。
private void pictureBox_Paint(object sender, PaintEventArgs e)
{
Graphics graphics = e.Graphics;
Brush brush = new SolidBrush(Color.Red);
graphics.FillRectangle(brush, new Rectangle(10, 10, 100, 100));
Pen pen = new Pen(Color.Green);
graphics.DrawRectangle(pen, new Rectangle(5, 5, 100, 100));
}
他のヒント
PictureBox をフォームに追加し、ペイント イベントのイベント ハンドラーを作成して、次のようにします。
private void PictureBox_Paint(object sender, PaintEventArgs e)
{
int width = myPictureBox.ClientSize.Width / 2;
int height = myPictureBox.ClientSize.Height / 2;
Rectangle rect = new Rectangle(0, 0, width, height);
e.Graphics.FillRectangle(Brushes.White, rect);
rect = new Rectangle(width, 0, width, height);
e.Graphics.FillRectangle(Brushes.Red, rect);
rect = new Rectangle(0, height, width, height);
e.Graphics.FillRectangle(Brushes.Green, rect);
rect = new Rectangle(width, height, width, height);
e.Graphics.FillRectangle(Brushes.Blue, rect);
}
これにより、表面が 4 つの長方形に分割され、それぞれが白、赤、緑、青の色でペイントされます。
事前定義されていない色を使用する場合は、静的メソッド Color.FromArgb() から Color オブジェクトを取得する必要があります。
int r = 100;
int g = 200;
int b = 50;
Color c = Color.FromArgb(r, g, b);
Brush brush = new SolidBrush(c);
//...
よろしくお願いします
オリバー・ハナッピ
所属していません StackOverflow