Operaciones de gráficos (C++/CLI)
Muestra la manipulación de imágenes mediante Windows SDK.
En los temas siguientes se muestra el uso de la clase System.Drawing.Image para realizar la manipulación de imágenes.
Mostrar imágenes con el .NET Framework
En el ejemplo de código siguiente se modifica el controlador de eventos OnPaint para recuperar un puntero al objeto Graphics del formulario principal. La función OnPaint está pensada para una aplicación Windows Forms, lo más probable es que se cree con un asistente para Visual Studio aplicación.
La imagen se representa mediante la clase Image. Los datos de imagen se cargan desde .jpg archivo mediante el método System.Drawing.Image.FromFile. Antes de dibujar la imagen en el formulario, se cambia el tamaño del formulario para dar cabida a la imagen. El dibujo de la imagen se realiza con el método System.Drawing.Graphics.DrawImage.
Las clases Graphics e Image están en el espacio de nombres System.Drawing.
Ejemplo
#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 );
}
Dibujar formas con el .NET Framework
En el ejemplo de código siguiente se usa la clase Graphics para modificar el controlador de eventos OnPaint para recuperar un puntero al objeto Graphics del formulario principal. A continuación, este puntero se usa para establecer el color de fondo del formulario y dibujar una línea y un arco mediante los métodos System.Drawing.Graphics.DrawLiney DrawPlace.
Ejemplo
#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 );
}
Girar imágenes con el .NET Framework
En el ejemplo de código siguiente se muestra el uso de la clase System.Drawing.Image para cargar una imagen desde el disco, girarla 90 grados y guardarla como un nuevo archivo .jpg datos.
Ejemplo
#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;
}
Convertir formatos de archivo de imagen con el .NET Framework
En el ejemplo de código siguiente se muestra la clase System.Drawing.Image y la enumeración System.Drawing.Imaging.ImageFormat utilizada para convertir y guardar archivos de imagen. El código siguiente carga una imagen de un archivo .jpg y, a continuación, la guarda en formatos .gif y .bmp archivos.
Ejemplo
#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;
}
Secciones relacionadas
Introducción a la programación de gráficos