다음을 통해 공유


ImageAttributes::GetAdjustedPalette 메서드(gdiplusimageattributes.h)

ImageAttributes::GetAdjustedPalette 메서드는 지정된 범주의 조정 설정에 따라 색상표의 색을 조정합니다.

구문

Status GetAdjustedPalette(
  [in, out] ColorPalette    *colorPalette,
  [in]      ColorAdjustType colorAdjustType
);

매개 변수

[in, out] colorPalette

형식: ColorPalette*

입력 시 조정할 색상표를 포함하고 출력 시 조정된 팔레트를 수신하는 ColorPalette 구조체에 대한 포인터입니다.

[in] colorAdjustType

형식: ColorPalette

색상표에 조정 설정을 적용할 범주를 지정하는 ColorAdjustType 열거형의 요소입니다.

반환 값

형식: 상태

메서드가 성공하면 Status 열거형의 요소인 Ok를 반환합니다.

메서드가 실패하면 Status 열거형의 다른 요소 중 하나를 반환합니다.

설명

ImageAttributes 개체는 기본, 비트맵, 브러시, 펜 및 텍스트의 다섯 가지 조정 범주에 대한 색 및 회색조 설정을 유지 관리합니다. 예를 들어 기본 범주에 대한 색 다시 매핑 테이블, 비트맵 범주에 대한 다른 색 다시 매핑 테이블, 펜 범주에 대한 색 다시 매핑 테이블을 지정할 수 있습니다.

ImageAttributes::GetAdjustedPalette를 호출할 때 색상표 색을 조정하는 데 사용되는 조정 범주를 지정할 수 있습니다. 예를 들어 ColorAdjustTypeBitmapImageAttributes::GetAdjustedPalette 메서드에 전달하는 경우 비트맵 범주의 조정 설정을 사용하여 색상표 색을 조정합니다.

예제

다음 예제에서는 네 가지 색(aqua, black, red 및 green)으로 ColorPalette 구조를 초기화합니다. 또한 이 코드는 ImageAttributes 개체를 만들고 해당 비트맵 다시 매핑 테이블을 설정하여 녹색이 파란색으로 변환되도록 합니다. 그런 다음, 코드는 ImageAttributes 개체의 ImageAttributes::GetAdjustedPalette 메서드에 색상표의 주소를 전달하여 색상표 색을 조정합니다. 이 코드는 네 가지 색상표 색을 두 번 표시합니다. 즉, 조정 전에 한 번, 조정 후에 한 번 표시됩니다.


VOID Example_GetAdjustedPalette(HDC hdc)
{
   Graphics graphics(hdc);
   INT j;

   // Create a palette that has four entries.
   ColorPalette* palette = 
      (ColorPalette*)malloc(sizeof(ColorPalette) + 3 * sizeof(ARGB));
   palette->Flags = 0;
   palette->Count = 4;

   palette->Entries[0] = 0xFF00FFFF;   // aqua
   palette->Entries[1] = 0xFF000000;   // black
   palette->Entries[2] = 0xFFFF0000;   // red
   palette->Entries[3] = 0xFF00FF00;   // green
  
   // Display the four palette colors with no adjustment.
   SolidBrush brush(Color());
   for(j = 0; j < 4; ++j)
   {
      brush.SetColor(palette->Entries[j]);
      graphics.FillRectangle(&brush, 30*j, 0, 20, 20);
   }

   // Create a remap table that converts green to blue.
   ColorMap map;
      map.oldColor = Color(255, 0, 255, 0);  // green
      map.newColor = Color(255, 0, 0, 255);  // blue

   // Create an ImageAttributes object, and set its bitmap remap table.
   ImageAttributes imAtt;
   imAtt.SetRemapTable(1, &map, ColorAdjustTypeBitmap);

   // Adjust the palette.
   imAtt.GetAdjustedPalette(palette, ColorAdjustTypeBitmap);

   // Display the four palette colors after the adjustment.
   for(j = 0; j < 4; ++j)
   {
      brush.SetColor(palette->Entries[j]);
      graphics.FillRectangle(&brush, 30*j, 30, 20, 20);
   }
}
				

다음 그림에서는 이전 코드의 출력을 보여 줍니다. 원래 색상표의 녹색이 파란색으로 변경되었습니다.

두 행의 색이 지정된 사각형이 있는 그림; 마지막은 행 1의 녹색이고 행 2에서는 파란색입니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP, Windows 2000 Professional [데스크톱 앱만 해당]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 gdiplusimageattributes.h(Gdiplus.h 포함)
라이브러리 Gdiplus.lib
DLL Gdiplus.dll

참고 항목

Bitmap

색상

ColorAdjustType

Colormap

ColorPalette

이미지

ImageAttributes

Metafile

PaletteFlags

다시 칠하기