GDI+에서 이미지 그리기, 위치 지정 및 복제
Bitmap 클래스를 사용하여 래스터 이미지를 로드하고 표시할 수 있으며 Metafile 클래스를 사용하여 벡터 이미지를 로드하고 표시할 수 있습니다. Bitmap 클래스와 Metafile 클래스는 Image 클래스에서 상속됩니다. 벡터 이미지를 표시하려면 Graphics 클래스 인스턴스와 Metafile이 필요하고 래스터 이미지를 표시하려면 Graphics 클래스 인스턴스와 Bitmap이 필요합니다. Graphics 클래스 인스턴스는 Metafile 또는 Bitmap을 인수로 받는 DrawImage 메서드를 제공합니다.
파일 형식 및 복제
다음 코드 예제에서는 Climber.jpg 파일에서 Bitmap 개체를 만든 다음 비트맵을 표시하는 방법을 보여 줍니다. 두 번째 및 세 번째 매개 변수에 이미지의 왼쪽 위 모퉁이의 대상점인(10, 10)을 지정하였습니다.
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);
다음 그림은 두 이미지를 보여 줍니다.