Share via


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

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

ファイルの種類と複製

次のコード例では、Climber.jpg ファイルから Bitmap を構築し、ビットマップを表示する方法を示します。 画像の左上隅の宛先ポイント (10, 10) は、2 番目と 3 番目のパラメーターに指定します。

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

次の図に、画像を示します。

Image Sample

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

次のコード例は、さまざまな種類のファイルから Bitmap オブジェクトを作成し、その後ビットマップを表示する方法を示しています。

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);
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 クラスには、既存の Bitmap のコピーを作成するために使用できる Clone メソッドが用意されています。 Clone メソッドには、コピーする元のビットマップの部分を指定するために使用できるソース四角形パラメーターがあります。 次のコード例では、既存の Bitmap の上半分を複製して Bitmap を作成する方法を示します。 その後、両方の画像が描画されます。

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);
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)

次の図は、2 つの画像を示しています。

Cropping

関連項目