C#_Image と Bitmap の違い

 

System.Drawing.Image

ベクタ画像、ビットマップ画像問わず、画像を扱う為のクラス。
png、jpg、gif 等、さまざまな画像形式ファイルを読み書きできる

 ベクタ形式:
画像を円や直線などのような幾何学的な「図形」の集まりとして表現する形式。

ビットマップ形式:
画像を色のついたドットの羅列、集まりで表現する形式。

 

System.Drawing.Bitmap

ビットマップ 画像を扱う為のクラス。
System.Windows.Formsビットマップベースの GUI 環境なので、
System.Windows.Forms を使った GUI プログラミングでは
Bitmap クラスをよく使用する。

だが、ビットマップに対する図形の描画などは
Graphics クラスを介して行う。

 

System.Drawing.Graphics

Bmp 画像や、System.Windows.Forms GUI プログラムの画面上に、
直線、曲線、矩形、円などを描く為のクラス。

 

 

ex ) 矩形を描く

手順
Bitmap オブジェクトを作成。
Graphics オブジェクトを作成。
Graphics を用いて描画 。

※ pictureBox1 は設置済み。

    Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);

    Graphics graphic = Graphics.FromImage(bmp);

    Pen pen = new Pen(Color.Black, 2);
    //x座標, y座標, 幅, 高さ
    Rectangle[ ] recst = { new Rectangle(10, 10, 30, 40) };
    graphic.DrawRectangles(pen, recst);

    pen.Dispose();
    graphic.Dispose();

    pictureBox1.Image = bmp;

    // 複数描く場合は、 recst = { } の中に書きたい分だけ new する。
    // 1 つだけなら、 g.DrawRectangle(pen, 10, 10, 30, 40);

 

こちらから。
http://ufcpp.net/study/csharp/lib_drawing.html
http://dobon.net/vb/dotnet/graphics/drawrectangle.html
http://www.atmarkit.co.jp/fdotnet/dotnettips/451imglocation/imglocation.html
http://michisugara.jp/archives/2012/img_format.html

 

以上。

--Memo--
pictureBox に画像を表示するのは 2通りある。

・pictureBox1.ImageLocation = " URL ";

・pictureBox1.Load(" URL ");
   Load の場合、URL が ImageLocation プロパティにも設定される。