web-dev-qa-db-ja.com

透明度とテキストを含む画像に長方形を描くにはどうすればよいですか

これは私の最初のグラフィックスベースのプロジェクトであり、透明度とテキストを使用してビットマップ上に長方形を描画できるようにする必要があります。

これからどこから始めればよいかわかりません。少し調べましたが、画像に半透明の四角形を追加できる記事が見つからないようです。

私が持つことになるのは、操作できるようにする必要がある画像ストリームです。

誰かがこれについて正しい方向に私を向けることができますか?

ソースのあるサイトは、GDIの作業をこれまでに行ったことがないため、すばらしいでしょう。

19
griegs

あなたはこのようなことを試すことができます:

// Load the image (probably from your stream)
Image image = Image.FromFile( imagePath );

using (Graphics g = Graphics.FromImage(image))
{
   // Modify the image using g here... 
   // Create a brush with an alpha value and use the g.FillRectangle function
}

image.Save( imageNewPath );

編集:半透明の灰色のブラシを作成するコード

Color customColor = Color.FromArgb(50, Color.Gray);
SolidBrush shadowBrush = new SolidBrush(customColor);
g.FillRectangles(shadowBrush, new RectangleF[]{rectFToFill});
32
Nicolas Brault

開始するには、変更する画像からグラフィックスコンテキストを作成する必要があります。 こちらをご覧ください

// Create image.
Image imageFile = Image.FromFile("SampImag.bmp");

// Create graphics object for alteration.
Graphics newGraphics = Graphics.FromImage(imageFile);

Graphicsオブジェクトを取得したら、その多くのメソッドを使用して画像に描画できます。あなたの例では、ARGBカラーで DrawRectangle メソッドを使用して、画像上に半透明の長方形を作成します。

次に、画像をスクリーンコントロールに表示したり、ディスクに保存したりできます。

5
Paul Sasik