Share via


GDI+에서 이미지 그리기, 위치 지정 및 복제

Bitmap 클래스를 사용하여 래스터 이미지를 로드하고 표시할 수 있으며, Metafile 클래스를 사용하여 벡터 이미지를 로드하고 표시할 수 있습니다. BitmapMetafile 클래스는 Image 클래스에서 상속합니다. 벡터 이미지를 표시하려면 Graphics 클래스의 인스턴스와 Metafile이 필요합니다. 래스터 이미지를 표시하려면 Graphics 클래스의 인스턴스와 Bitmap이 필요합니다. Graphics 클래스의 인스턴스는 인수로 Metafile 또는 Bitmap을 받는 DrawImage 메서드를 제공합니다.

파일 형식 및 복제

다음 코드 예제에서는 Climber.jpg 파일에서 Bitmap을 생성하는 방법을 보여 주고 비트맵을 표시합니다. 이미지의 왼쪽 위 모서리(10, 10)에 대한 대상 지점은 두 번째 및 세 번째 매개 변수에 지정됩니다.

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

다음 그림은 이미지를 보여 줍니다.

이미지 샘플

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)

다음 그림은 두 개의 이미지를 보여 줍니다.

자르기

참고 항목