Работа с графикой (C++/CLI)Graphics Operations (C++/CLI)

Демонстрируется обработка изображений с помощью Windows SDK.Demonstrates image manipulation using the Windows SDK.

В следующих разделах демонстрируется использование System.Drawing.Image класса для выполнения манипуляций с изображениями.The following topics demonstrate the use of the System.Drawing.Image class to perform image manipulation.

Отображение изображений с помощью .NET FrameworkDisplay Images with the .NET Framework

В следующем примере кода обработчик событий onpain изменяется для получения указателя на Graphics объект главной формы.The following code example modifies the OnPaint event handler to retrieve a pointer to the Graphics object for the main form. OnPaintФункция предназначена для приложения Windows Forms, которое, скорее всего, будет создано с помощью мастера приложений Visual Studio.The OnPaint function is intended for a Windows Forms application, most likely created with a Visual Studio application wizard.

Изображение представлено Image классом.The image is represented by the Image class. Данные изображения загружаются из JPG-файла с помощью System.Drawing.Image.FromFile метода.The image data is loaded from a .jpg file using the System.Drawing.Image.FromFile method. Перед прорисовкой изображения в форму размер формы изменяется в соответствии с изображением.Before the image is drawn to the form, the form is resized to accommodate the image. Рисование изображения выполняется с помощью System.Drawing.Graphics.DrawImage метода.The drawing of the image is performed with the System.Drawing.Graphics.DrawImage method.

GraphicsКлассы и Image находятся в System.Drawing пространстве имен.The Graphics and Image classes are both in the System.Drawing namespace.

ПримерExample

#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 FrameworkDraw Shapes with the .NET Framework

В следующем примере кода класс используется Graphics для изменения OnPaint обработчика событий, чтобы получить указатель на Graphics объект для главной формы.The following code example uses the Graphics class to modify the OnPaint event handler to retrieve a pointer to the Graphics object for the main form. Затем этот указатель используется для задания цвета фона формы и рисования линии и дуги с помощью System.Drawing.Graphics.DrawLine DrawArc методов и.This pointer is then used to set the background color of the form and draw a line and an arc using the System.Drawing.Graphics.DrawLine and DrawArc methods.

ПримерExample

#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 FrameworkRotate Images with the .NET Framework

В следующем примере кода показано использование System.Drawing.Image класса для загрузки изображения с диска, вращения его 90 градусов и сохранения в виде нового JPG-файла.The following code example demonstrates the use of the System.Drawing.Image class to load an image from disk, rotate it 90 degrees, and save it as a new .jpg file.

ПримерExample

#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 FrameworkConvert Image File Formats with the .NET Framework

В следующем примере кода демонстрируется System.Drawing.Image класс и System.Drawing.Imaging.ImageFormat перечисление, используемое для преобразования и сохранения файлов изображений.The following code example demonstrates the System.Drawing.Image class and the System.Drawing.Imaging.ImageFormat enumeration used to convert and save image files. Следующий код загружает изображение из JPG-файла, а затем сохраняет его в форматах GIF и BMP.The following code loads an image from a .jpg file and then saves it in both .gif and .bmp file formats.

ПримерExample

#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;
}

Приступая к программированию графикиGetting Started with Graphics Programming

Управляемый код GDI+About GDI+ Managed Code

См. также разделSee also

Программирование .NET с использованием C++/CLI (Visual C++).NET Programming with C++/CLI (Visual C++)

System.Drawing