Metodo ImageAttributes::SetOutputChannelColorProfile (gdiplusimageattributes.h)

Il metodo ImageAttributes::SetOutputChannelColorProfile imposta il file del profilo colore del canale di output per una categoria specificata.

Sintassi

Status SetOutputChannelColorProfile(
  [in]           const WCHAR     *colorProfileFilename,
  [in, optional] ColorAdjustType type
);

Parametri

[in] colorProfileFilename

Tipo: const WCHAR*

Nome percorso di un file di profilo a colori. Se il file del profilo colore si trova nella directory %SystemRoot%\System32\Spool\Drivers\Color, questo parametro può essere il nome del file. In caso contrario, è necessario che il parametro corrisponda al nome completo del percorso.

[in, optional] type

Tipo: ColorAdjustType

Elemento dell'enumerazione ColorAdjustType che specifica la categoria per cui è impostato il file del profilo colore del canale di output. Il valore predefinito è ColorAdjustTypeDefault.

Valore restituito

Tipo: Stato

Se il metodo ha esito positivo, restituisce Ok, che è un elemento dell'enumerazione Status .

Se il metodo ha esito negativo, restituisce uno degli altri elementi dell'enumerazione Status .

Commenti

È possibile usare i metodi ImageAttributes::SetOutputChannel e ImageAttributes::SetOutputChannelColorProfile per convertire un'immagine in uno spazio colore ciano-magenta-giallo-nero (CMYK) ed esaminare le intensità di uno dei canali di colore CMYK. Si supponga, ad esempio, di scrivere codice che esegua i passaggi seguenti:

  1. Creare un oggetto Image .
  2. Creare un oggetto ImageAttributes .
  3. Passare ColorChannelFlagsC al metodo ImageAttributes::SetOutputChannel dell'oggetto ImageAttributes .
  4. Passare il nome del percorso di un file di profilo colore al metodo ImageAttributes::SetOutputChannelColorProfile dell'oggetto ImageAttributes .
  5. Passare gli indirizzi degli oggetti Image e ImageAttributes al metodo DrawImage .
Windows GDI+ userà il file del profilo colore per calcolare il componente ciano di ogni pixel nell'immagine e ogni pixel nell'immagine sottoposta a rendering sarà una sfumatura di grigio che indica l'intensità del canale ciano.

Un oggetto ImageAttributes mantiene le impostazioni di colore e gradazioni di grigio per cinque categorie di regolazione: default, bitmap, brush, pen e text. Ad esempio, è possibile specificare un file del profilo colore del canale di output per la categoria predefinita e un file di profilo colore del canale di output diverso per la categoria bitmap.

Le impostazioni predefinite di regolazione del colore e della scala di grigio si applicano a tutte le categorie che non dispongono di impostazioni di regolazione personalizzate. Ad esempio, se non si specificano mai impostazioni di regolazione per la categoria bitmap, le impostazioni predefinite si applicano alla categoria bitmap.

Non appena si specifica un'impostazione di regolazione del colore o della scala di grigi per una determinata categoria, le impostazioni di regolazione predefinite non si applicano più a tale categoria. Si supponga, ad esempio, di specificare una raccolta di impostazioni di regolazione per la categoria predefinita. Se si imposta il file del profilo colore del canale di output per la categoria bitmap passando ColorAdjustTypeBitmap al metodo ImageAttributes::SetOutputChannelColorProfile , nessuna delle impostazioni di regolazione predefinite verrà applicata alle bitmap.

Esempio

Nell'esempio seguente viene creato un oggetto Image e viene chiamato il metodo DrawImage per disegnare l'immagine. Il codice crea quindi un oggetto ImageAttributes e chiama il relativo metodo ImageAttributes::SetOutputChannelColorProfile per specificare un file di profilo per la categoria bitmap. La chiamata a ImageAttributes::SetOutputChannel imposta il canale di output (per la categoria bitmap) su ciano. Il codice chiama DrawImage una seconda volta, passando l'indirizzo dell'oggetto Image e l'indirizzo dell'oggetto ImageAttributes . Il canale ciano di ogni pixel viene calcolato e l'immagine sottoposta a rendering mostra le intensità del canale ciano come sfumature di grigio. Il codice chiama DrawImage tre volte più volte per mostrare le intensità dei canali magenta, giallo e nero.


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

Il codice precedente, insieme ai file Mosaic2.bmp e Tekph600.icm, ha prodotto l'output seguente.

Illustrazione che mostra quattro versioni di un'immagine: prima a colori, poi in tre modelli diversi di scala grigia

Requisiti

Requisito Valore
Client minimo supportato Windows XP, Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione gdiplusimageattributes.h (include Gdiplus.h)
Libreria Gdiplus.lib
DLL Gdiplus.dll

Vedi anche

Coloradjusttype

ColorChannelFlags

Imageattributes

ImageAttributes::ClearOutputChannel

ImageAttributes::ClearOutputChannelColorProfile

ImageAttributes::SetOutputChannel