注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。
画像の一部を切り取って表示(トリミング)するには、Graphics.DrawImageメソッドに画像を描画する範囲と、切り取る範囲、そして使用する単位を指定します。ただしこの方法で切り取れるのは、矩形(四角)の範囲です。それ以外の形で切り取りたい場合は、「クリッピング領域を指定して画像の一部を表示する」をご覧ください。
なおGraphics.DrawImageメソッドについては、「画像(Imageオブジェクト)を描画する」をご覧ください。
次の例では、画像ファイル(C:\test\1.jpg)の 位置 (10, 10)、大きさ 100x100 の範囲を、ピクチャボックス(PictureBox1)の位置 (0, 0) に 100x100 の大きさで表示しています。単位は、ピクセル単位です。
'Imports System.Drawing '画像の一部を切り取って(トリミングして)表示する '描画先とするImageオブジェクトを作成する Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height) 'ImageオブジェクトのGraphicsオブジェクトを作成する Dim g As Graphics = Graphics.FromImage(canvas) '画像ファイルのImageオブジェクトを作成する Dim img As New Bitmap("C:\test\1.jpg") '切り取る部分の範囲を決定する。ここでは、位置(10,10)、大きさ100x100 Dim srcRect As New Rectangle(10, 10, 100, 100) '描画する部分の範囲を決定する。ここでは、位置(0,0)、大きさ100x100で描画する Dim desRect As New Rectangle(0, 0, srcRect.Width, srcRect.Height) '画像の一部を描画する g.DrawImage(img, desRect, srcRect, GraphicsUnit.Pixel) 'Graphicsオブジェクトのリソースを解放する g.Dispose() 'PictureBox1に表示する PictureBox1.Image = canvas
//using System.Drawing; //画像の一部を切り取って(トリミングして)表示する //描画先とするImageオブジェクトを作成する Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height); //ImageオブジェクトのGraphicsオブジェクトを作成する Graphics g = Graphics.FromImage(canvas); //画像ファイルのImageオブジェクトを作成する Bitmap img = new Bitmap(@"C:\test\1.jpg"); //切り取る部分の範囲を決定する。ここでは、位置(10,10)、大きさ100x100 Rectangle srcRect = new Rectangle(10, 10, 100, 100); //描画する部分の範囲を決定する。ここでは、位置(0,0)、大きさ100x100で描画する Rectangle desRect = new Rectangle(0, 0, srcRect.Width, srcRect.Height); //画像の一部を描画する g.DrawImage(img, desRect, srcRect, GraphicsUnit.Pixel); //Graphicsオブジェクトのリソースを解放する g.Dispose(); //PictureBox1に表示する PictureBox1.Image = canvas;
もし切り取る部分と描画する部分の大きさが違った場合は、描画する部分の大きさに合わせて画像が拡大、あるいは縮小されて表示されます。
描画する部分の大きさを指定しなかった場合は、自動スケーリングが行われる可能性があります。自動スケーリングについては「クリッピング領域を指定して画像の一部を表示する」で説明しています。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。