Image::Save(constWCHAR*,constCLSID*,constEncoderParameters*) (gdiplusheaders.h)

El método Image::Save guarda esta imagen en un archivo.

Sintaxis

Status Save(
  const WCHAR             *filename,
  const CLSID             *clsidEncoder,
  const EncoderParameters *encoderParams
);

Parámetros

filename

Puntero a una cadena terminada en null que especifica el nombre de ruta de acceso de la imagen guardada.

clsidEncoder

Puntero a un CLSID que especifica el codificador que se va a usar para guardar la imagen.

encoderParams

Opcional. Puntero a un objeto EncoderParameters que contiene los parámetros usados por el codificador. El valor predeterminado es NULL.

Valor devuelto

Tipo: Estado

Si el método se realiza correctamente, devuelve Ok, que es un elemento de la enumeración Status .

Si se produce un error en el método, devuelve uno de los otros elementos de la enumeración Status .

Comentarios

GDI+ no permite guardar una imagen en el mismo archivo que usó para construir la imagen. El código siguiente crea un objeto Image pasando el nombre MyImage.jpg de archivo a un constructor Image . Ese mismo nombre de archivo se pasa al método Image::Save del objeto Image, por lo que se produce un error en el método Image::Save .

Image image(L"myImage.jpg");

// Do other operations.

// Save the image to the same file name. (This operation will fail.)
image.Save(L"myImage.jpg", ...);

Ejemplos

En el ejemplo siguiente se crea un objeto Image a partir de un archivo PNG y, a continuación, se crea un objeto Graphics basado en ese objeto Image . El código dibuja la imagen, modifica la imagen y vuelve a dibujarla. Por último, el código guarda la imagen modificada en un archivo.

El código se basa en una función auxiliar, GetEncoderClsid, para obtener el identificador de clase del codificador PNG. La función GetEncoderClsid se muestra en Recuperación del identificador de clase para un codificador.

La técnica de construir un objeto Graphics basado en una imagen solo funciona para determinados formatos de imagen. Por ejemplo, no se puede construir un objeto Graphics basado en una imagen que tenga una profundidad de color de 4 bits por píxel. Para obtener más información sobre qué formatos son compatibles con el constructor Graphics, vea Gráficos.

VOID Example_SaveFile(HDC hdc)
{
   Graphics graphics(hdc);

   // Create an Image object based on a PNG file.
   Image  image(L"Mosaic.png");

   // Draw the image.
   graphics.DrawImage(&image, 10, 10);

   // Construct a Graphics object based on the image.
   Graphics imageGraphics(&image);

   // Alter the image.
   SolidBrush brush(Color(255, 0, 0, 255));
   imageGraphics.FillEllipse(&brush, 20, 30, 80, 50);

   // Draw the altered image.
   graphics.DrawImage(&image, 200, 10);

   // Save the altered image.
   CLSID pngClsid;
   GetEncoderClsid(L"image/png", &pngClsid);
   image.Save(L"Mosaic2.png", &pngClsid, NULL);
}

Requisitos

Requisito Valor
Header gdiplusheaders.h

Consulte también

Imagen

EncoderParameter

EncoderParameters

GetImageEncoders

Métodos Image::Save

Image::SaveAdd (Métodos)

Uso de codificadores y descodificadores de imágenes