Método ImageAttributes::SetOutputChannelColorProfile (gdiplusimageattributes.h)
El método ImageAttributes::SetOutputChannelColorProfile establece el archivo de perfil de color del canal de salida para una categoría especificada.
Sintaxis
Status SetOutputChannelColorProfile(
[in] const WCHAR *colorProfileFilename,
[in, optional] ColorAdjustType type
);
Parámetros
[in] colorProfileFilename
Tipo: const WCHAR*
Nombre de ruta de acceso de un archivo de perfil de color. Si el archivo de perfil de color está en el directorio %SystemRoot%\System32\Spool\Drivers\Color, este parámetro puede ser el nombre de archivo. En caso contrario, este parámetro debe ser el nombre completo de la ruta de acceso.
[in, optional] type
Tipo: ColorAdjustType
Elemento de la enumeración ColorAdjustType que especifica la categoría para la que se establece el archivo de perfil de color del canal de salida. El valor predeterminado es ColorAdjustTypeDefault.
Valor devuelto
Tipo: Estado
Si el método se ejecuta 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
Puede usar los métodos ImageAttributes::SetOutputChannel e ImageAttributes::SetOutputChannelColorProfile para convertir una imagen en un espacio de colores cian-magenta-amarillo-negro (CMYK) y examinar las intensidades de uno de los canales de color CMYK. Por ejemplo, supongamos que escribe código que realiza los pasos siguientes:
- Cree un objeto Image .
- Cree un objeto ImageAttributes .
- Pase ColorChannelFlagsC al método ImageAttributes::SetOutputChannel del objeto ImageAttributes .
- Pase el nombre de ruta de acceso de un archivo de perfil de color al método ImageAttributes::SetOutputChannelColorProfile del objeto ImageAttributes .
- Pase las direcciones de los objetos Image e ImageAttributes al método DrawImage .
Un objeto ImageAttributes mantiene la configuración de color y escala de grises para cinco categorías de ajuste: predeterminado, mapa de bits, pincel, lápiz y texto. Por ejemplo, puede especificar un archivo de perfil de color de canal de salida para la categoría predeterminada y un archivo de perfil de color de canal de salida diferente para la categoría de mapa de bits.
La configuración predeterminada de ajuste de escala de grises y color se aplica a todas las categorías que no tienen ajustes de ajuste propios. Por ejemplo, si nunca especifica ninguna configuración de ajuste para la categoría de mapa de bits, la configuración predeterminada se aplica a la categoría de mapa de bits.
En cuanto especifique un ajuste de ajuste de escala de grises o de color para una determinada categoría, la configuración de ajuste predeterminada ya no se aplica a esa categoría. Por ejemplo, supongamos que especifica una colección de opciones de ajuste para la categoría predeterminada. Si establece el archivo de perfil de color del canal de salida para la categoría de mapa de bits pasando ColorAdjustTypeBitmap al método ImageAttributes::SetOutputChannelColorProfile , ninguna de las opciones de ajuste predeterminadas se aplicará a los mapas de bits.
Ejemplos
En el ejemplo siguiente se crea un objeto Image y se llama al método DrawImage para dibujar la imagen. A continuación, el código crea un objeto ImageAttributes y llama a su método ImageAttributes::SetOutputChannelColorProfile para especificar un archivo de perfil para la categoría de mapa de bits. La llamada a ImageAttributes::SetOutputChannel establece el canal de salida (para la categoría de mapa de bits) en cian. El código llama a DrawImage una segunda vez, pasando la dirección del objeto Image y la dirección del objeto ImageAttributes . El canal cian de cada píxel se calcula y la imagen representada muestra las densidades del canal cian como tonos de gris. El código llama a DrawImage tres veces más para mostrar las densidades de los canales magenta, amarillo y negro.
VOID Example_SetOutputProfile(HDC hdc)
{
Graphics graphics(hdc);
Image image(L"Mosaic2.bmp");
ImageAttributes imAtt;
UINT width = image.GetWidth();
UINT height = image.GetHeight();
// Draw the image unaltered.
graphics.DrawImage(&image, 10, 10, width, height);
imAtt.SetOutputChannelColorProfile(
L"TEKPH600.ICM", ColorAdjustTypeBitmap);
// Draw the image, showing the intensity of the cyan channel.
imAtt.SetOutputChannel(ColorChannelFlagsC, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(110, 10, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
// Draw the image, showing the intensity of the magenta channel.
imAtt.SetOutputChannel(ColorChannelFlagsM, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(210, 10, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
// Draw the image, showing the intensity of the yellow channel.
imAtt.SetOutputChannel(ColorChannelFlagsY, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(10, 110, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
// Draw the image, showing the intensity of the black channel.
imAtt.SetOutputChannel(ColorChannelFlagsK, ColorAdjustTypeBitmap);
graphics.DrawImage(
&image,
Rect(110, 110, width, height), // dest rect
0, 0, width, height, // source rect
UnitPixel,
&imAtt);
}
El código anterior, junto con los archivos Mosaic2.bmp y Tekph600.icm, generó la siguiente salida.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows XP, Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | gdiplusimageattributes.h (include Gdiplus.h) |
Library | Gdiplus.lib |
Archivo DLL | Gdiplus.dll |
Consulte también
ImageAttributes::ClearOutputChannel