그래픽 작업(C++/CLI)
Windows SDK를 사용하여 이미지 조작을 보여 줍니다.
다음 항목에서는 클래스를 사용하여 System.Drawing.Image 이미지 조작을 수행하는 방법을 보여 줍니다.
.NET Framework를 사용하여 이미지 표시
다음 코드 예제에서는 기본 폼에 대 한 개체에 대 한 포인터 Graphics 를 검색 하려면 OnPaint 이벤트 처리기를 수정 합니다. 이 OnPaint 함수는 Visual Studio 애플리케이션 마법사를 사용하여 만든 Windows Forms 애플리케이션을 위한 것입니다.
이미지는 클래스로 Image 표시됩니다. 이미지 데이터는 메서드를 사용하여 .jpg 파일에서 로드됩니다 System.Drawing.Image.FromFile . 이미지가 폼에 그려지기 전에 이미지에 맞게 폼의 크기가 조정됩니다. 이미지 그리기는 메서드를 사용하여 System.Drawing.Graphics.DrawImage 수행됩니다.
Graphics 및 Image 클래스는 모두 네임스페이스에 System.Drawing 있습니다.
예시
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
protected:
virtual Void Form1::OnPaint(PaintEventArgs^ pe) override
{
Graphics^ g = pe->Graphics;
Image^ image = Image::FromFile("SampleImage.jpg");
Form::ClientSize = image->Size;
g->DrawImage( image, 0, 0, image->Size.Width, image->Size.Height );
}
.NET Framework를 사용하여 셰이프 그리기
다음 코드 예제에서는 기본 폼에 Graphics 대 한 개체에 OnPaint 대 한 포인터를 검색 하는 이벤트 처리기를 수정 하는 Graphics 클래스를 사용 합니다. 이 포인터는 폼의 배경색을 설정하고 및 메서드를 사용하여 System.Drawing.Graphics.DrawLine DrawArc 선과 호를 그리는 데 사용됩니다.
예시
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
// ...
protected:
virtual Void Form1::OnPaint(PaintEventArgs^ pe ) override
{
Graphics^ g = pe->Graphics;
g->Clear(Color::AntiqueWhite);
Rectangle rect = Form::ClientRectangle;
Rectangle smallRect;
smallRect.X = rect.X + rect.Width / 4;
smallRect.Y = rect.Y + rect.Height / 4;
smallRect.Width = rect.Width / 2;
smallRect.Height = rect.Height / 2;
Pen^ redPen = gcnew Pen(Color::Red);
redPen->Width = 4;
g->DrawLine(redPen, 0, 0, rect.Width, rect.Height);
Pen^ bluePen = gcnew Pen(Color::Blue);
bluePen->Width = 10;
g->DrawArc( bluePen, smallRect, 90, 270 );
}
.NET Framework를 사용하여 이미지 회전
다음 코드 예제에서는 클래스를 System.Drawing.Image 사용하여 디스크에서 이미지를 로드하고, 90도 회전하고, 새 .jpg 파일로 저장하는 방법을 보여 줍니다.
예시
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
int main()
{
Image^ image = Image::FromFile("SampleImage.jpg");
image->RotateFlip( RotateFlipType::Rotate90FlipNone );
image->Save("SampleImage_rotated.jpg");
return 0;
}
.NET Framework를 사용하여 이미지 파일 형식 변환
다음 코드 예제에서는 클래스 및 이미지 파일을 변환 하 고 System.Drawing.Imaging.ImageFormat 저장 하는 데 사용 하는 열거형을 보여 System.Drawing.Image 줍니다. 다음 코드는 .jpg 파일에서 이미지를 로드한 다음 .gif 파일 형식과 .bmp 파일 형식으로 저장합니다.
예시
#using <system.drawing.dll>
using namespace System;
using namespace System::Drawing;
using namespace System::Drawing::Imaging;
int main()
{
Image^ image = Image::FromFile("SampleImage.jpg");
image->Save("SampleImage.png", ImageFormat::Png);
image->Save("SampleImage.bmp", ImageFormat::Bmp);
return 0;
}