Работа с графикой (C++/CLI)
Демонстрирует обработку изображений с помощью пакета SDK для Windows.
В следующих разделах показано использование System.Drawing.Image класса для обработки изображений.
Отображение изображений с помощью платформа .NET Framework
В следующем примере кода обработчик событий OnPaint изменяет указатель на Graphics объект для основной формы. Функция OnPaint предназначена для приложения Windows Forms, скорее всего, созданного с помощью мастера приложений Visual Studio.
Изображение представлено классом Image . Данные изображения загружаются из файла .jpg с помощью System.Drawing.Image.FromFile метода. Прежде чем изображение нарисовано в форму, форма изменяется для размещения изображения. Рисунок изображения выполняется с System.Drawing.Graphics.DrawImage помощью метода.
Image Классы Graphics находятся в 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.Image класс и перечисление, используемое System.Drawing.Imaging.ImageFormat для преобразования и сохранения файлов изображений. Следующий код загружает изображение из файла .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;
}
Связанные разделы
Приступая к программированию графики