다음을 통해 공유


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

ImageAttributes::ClearBrushRemapTable 메서드는 이 ImageAttributes 개체의 브러시 색 다시 매핑 테이블을 지웁니다.

구문

Status ClearBrushRemapTable();

반환 값

형식: 상태

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

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

설명

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

기본 색 및 회색조 조정 설정은 자체 조정 설정이 없는 모든 범주에 적용됩니다. 예를 들어 브러시 범주에 대한 조정 설정을 지정하지 않으면 기본 설정이 브러시 범주에 적용됩니다.

특정 범주에 대한 색 또는 회색조 조정 설정을 지정하는 즉시 기본 조정 설정이 해당 범주에 더 이상 적용되지 않습니다. 예를 들어 빨간색을 녹색으로 변환하는 기본 다시 매핑 테이블을 지정하고 기본 감마 값 1.8을 지정한다고 가정합니다. ImageAttributes::SetBrushRemapTable을 호출하는 경우 기본 다시 매핑 테이블(빨간색에서 녹색으로) 및 기본 감마 값(1.8)이 브러시에 적용되지 않습니다. 나중에 ImageAttributes::ClearBrushRemapTable을 호출하는 경우 브러시 범주는 기본 다시 매핑 테이블에 되돌리기 않습니다. 대신 브러시 범주에는 다시 매핑 테이블이 없습니다. 마찬가지로 브러시 범주는 기본 감마 값으로 되돌리기 않습니다. 대신 브러시 범주에는 감마 값이 없습니다.

예제

다음 예제에서는 .emf 파일에서 Image 개체를 만듭니다. 또한 이 코드는 ImageAttributes 개체를 만듭니다. ImageAttributes::SetRemapTable에 대한 호출은 ImageAttributes 개체의 기본 색 다시 매핑 테이블을 빨간색에서 파란색으로 변환하는 테이블로 설정합니다. ImageAttributes::SetBrushRemapTable에 대한 호출은 ImageAttributes 개체의 브러시 다시 매핑 테이블을 빨간색에서 녹색으로 변환하는 테이블로 설정합니다.

코드는 DrawImage 를 한 번 호출하여 색 조정 없이 이미지를 그립니다. 그런 다음, 코드는 Image 개체의 주소와 ImageAttributes 개체의 주소를 전달할 때마다 DrawImage를 세 번 더 호출합니다. 이미지를 두 번째로 그릴 때( ImageAttributes::SetRemapTable 호출 후) 모든 빨간색이 파란색으로 변환됩니다. 이미지가 세 번째로 그려질 때( ImageAttributes::SetBrushRemapTable 호출 후) 브러시로 칠해진 모든 빨간색이 녹색으로 변환되고 나머지 빨간색은 파란색으로 변환됩니다. 이미지를 네 번째로 그릴 때( ImageAttributes::ClearBrushRemapTable 호출 후) 브러시로 칠해진 모든 빨간색은 변경되지 않고 나머지 빨간색은 파란색으로 변환됩니다.


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

   Image image(L"TestMetafile4.emf");
   ImageAttributes imAtt;

   ColorMap defaultMap;
   defaultMap.oldColor = Color(255, 255, 0, 0);   // red converted to blue
   defaultMap.newColor = Color(255, 0, 0, 255);

   ColorMap brushMap;
   brushMap.oldColor = Color(255, 255, 0, 0);     // red converted to green
   brushMap.newColor = Color(255, 0, 255, 0);

   // Set the default color-remap table.
   imAtt.SetRemapTable(1, &defaultMap, ColorAdjustTypeDefault);

   // Draw the image (metafile) using no color adjustment.
   graphics.DrawImage(
      &image,
      Rect(10, 10, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel);

   // Draw the image (metafile) using default color adjustment.
   // All red is converted to blue.
   graphics.DrawImage(
      &image,
      Rect(10, 90, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),          // source rect
      UnitPixel,
      &imAtt);

   // Set the brush remap table.
   imAtt.SetBrushRemapTable(1, &brushMap);

   // Draw the image (metafile) using default and brush adjustment.
   // Red painted with a brush is converted to green.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 170, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);

   // Clear the brush remap table.
   imAtt.ClearBrushRemapTable();

   // Draw the image (metafile) using only default color adjustment.
   // Red painted with a brush gets no color adjustment.
   // All other red is converted to blue (default).
   graphics.DrawImage(
      &image,
      Rect(10, 250, image.GetWidth(), image.GetHeight()),  // dest rect
      0, 0, image.GetWidth(), image.GetHeight(),           // source rect
      UnitPixel,
      &imAtt);  
}
				

이전 코드는 특정 파일 Testmetafile4.emf와 함께 다음 출력을 생성했습니다. 왼쪽 열의 타원은 펜으로 그려졌으며 오른쪽 열의 타원은 브러시로 채워졌습니다. 기본 다시 매핑 테이블은 펜으로 그린 타원에 적용됩니다. 브러시로 채워진 타원에 적용되는 다시 매핑 테이블은 ImageAttributes::SetBrushRemapTableImageAttributes::ClearBrushRemapTable 호출에 따라 달라집니다.

4개의 빈 타원을 보여 주는 일러스트레이션; 첫 번째는 빨간색이고 나머지는 파란색이고 나머지는 4개의 채워진 타원( 빨강, 파랑, 녹색 및 빨강)입니다.

요구 사항

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

참고 항목

Bitmap

색상

ColorAdjustType

Colormap

이미지

ImageAttributes

ImageAttributes::ClearRemapTable

ImageAttributes::SetBrushRemapTable

ImageAttributes::SetRemapTable

Metafile

다시 칠하기