GDI+ でのイメージの描画、配置、およびクローン作成

更新 : 2007 年 11 月

Bitmap クラスを使用して、ラスタ イメージを読み込んだり表示したりできます。また、Metafile クラスを使用して、ベクタ イメージを読み込んだり表示したりできます。Bitmap クラスおよび Metafile クラスは、Image クラスを継承します。ベクタ イメージを表示するには、Graphics クラスのインスタンスと Metafile が必要です。ラスタ イメージを表示するには、Graphics クラスのインスタンスと Bitmap が必要です。Graphics クラスのインスタンスには、Metafile または Bitmap を引数として受け取る DrawImage メソッドが用意されています。

ファイルの種類とクローン作成

ファイル Climber.jpg から Bitmap を構築し、ビットマップを表示するコード例を次に示します。イメージの左上隅を配置する点 (10, 10) は、2 番目と 3 番目のパラメータで指定されます。

Dim myBitmap As New Bitmap("Climber.jpg")
myGraphics.DrawImage(myBitmap, 10, 10)

Bitmap myBitmap = new Bitmap("Climber.jpg");
myGraphics.DrawImage(myBitmap, 10, 10);

このイメージを次の図に示します。

イメージ サンプル

BMP、GIF、JPEG、EXIF、PNG、TIFF、ICON などさまざまなグラフィックス ファイル形式から Bitmap オブジェクトを構築できます。

さまざまな種類のファイルから Bitmap オブジェクトを構築し、ビットマップを表示するコード例を次に示します。

Dim myBMP As New Bitmap("SpaceCadet.bmp")
Dim myGIF As New Bitmap("Soda.gif")
Dim myJPEG As New Bitmap("Mango.jpg")
Dim myPNG As New Bitmap("Flowers.png")
Dim myTIFF As New Bitmap("MS.tif")

myGraphics.DrawImage(myBMP, 10, 10)
myGraphics.DrawImage(myGIF, 220, 10)
myGraphics.DrawImage(myJPEG, 280, 10)
myGraphics.DrawImage(myPNG, 150, 200)
myGraphics.DrawImage(myTIFF, 300, 200)

Bitmap myBMP = new Bitmap("SpaceCadet.bmp");
Bitmap myGIF = new Bitmap("Soda.gif");
Bitmap myJPEG = new Bitmap("Mango.jpg");
Bitmap myPNG = new Bitmap("Flowers.png");
Bitmap myTIFF = new Bitmap("MS.tif");

myGraphics.DrawImage(myBMP, 10, 10);
myGraphics.DrawImage(myGIF, 220, 10);
myGraphics.DrawImage(myJPEG, 280, 10);
myGraphics.DrawImage(myPNG, 150, 200);
myGraphics.DrawImage(myTIFF, 300, 200);

Bitmap クラスには、既存の Bitmap のコピーを作成するために使用できる Clone メソッドが用意されています。Clone メソッドには、コピー元のビットマップでコピーする部分を指定するために使用できる四角形パラメータがあります。既存の Bitmap の上半分のクローンを作成して Bitmap を作成するコード例を次に示します。次に、両方のイメージを描画します。

Dim originalBitmap As New Bitmap("Spiral.png")
Dim sourceRectangle As New Rectangle(0, 0, originalBitmap.Width, _
   CType(originalBitmap.Height / 2, Integer))

Dim secondBitmap As Bitmap = originalBitmap.Clone(sourceRectangle, _
   PixelFormat.DontCare)

myGraphics.DrawImage(originalBitmap, 10, 10)
myGraphics.DrawImage(secondBitmap, 150, 10)

Bitmap originalBitmap = new Bitmap("Spiral.png");
Rectangle sourceRectangle = new Rectangle(0, 0, originalBitmap.Width,
   originalBitmap.Height / 2);

Bitmap secondBitmap = originalBitmap.Clone(sourceRectangle,
   PixelFormat.DontCare);

myGraphics.DrawImage(originalBitmap, 10, 10);
myGraphics.DrawImage(secondBitmap, 150, 10);

2 つのイメージを次の図に示します。

トリミング

参照

処理手順

方法 : 描画する Graphics オブジェクトを作成する

その他の技術情報

イメージ、ビットマップ、およびメタファイル

イメージ、ビットマップ、アイコン、およびメタファイルの操作