D2D1_ALPHA_MODE 열거형(dcommon.h)

비트맵 또는 렌더링 대상의 알파 값을 처리하는 방법을 지정합니다.

Syntax

typedef enum D2D1_ALPHA_MODE {
  D2D1_ALPHA_MODE_UNKNOWN = 0,
  D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
  D2D1_ALPHA_MODE_STRAIGHT = 2,
  D2D1_ALPHA_MODE_IGNORE = 3,
  D2D1_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} ;

상수

 
D2D1_ALPHA_MODE_UNKNOWN
값: 0
알파 값은 의미가 없을 수 있습니다.
D2D1_ALPHA_MODE_PREMULTIPLIED
값: 1
알파 값이 미리 곱해졌습니다. 각 색은 먼저 알파 값으로 크기가 조정됩니다. 알파 값 자체는 직선 및 미리 곱한 알파에서 동일합니다. 일반적으로 알파 채널 값보다 큰 색 채널 값은 없습니다. 미리 곱한 형식의 색 채널 값이 알파 채널보다 크면 표준 소스 오버 혼합 수학이 가산 혼합됩니다.
D2D1_ALPHA_MODE_STRAIGHT
값: 2
알파 값이 미리 곱해지지 않았습니다. 알파 채널은 색의 투명도를 나타냅니다.
D2D1_ALPHA_MODE_IGNORE
값: 3
알파 값은 무시됩니다.
D2D1_ALPHA_MODE_FORCE_DWORD
값: 0xffffffff

설명

D2D1_ALPHA_MODE 열거형은 렌더링 대상 또는 비트맵의 알파 모드를 지정하기 위해 D2D1_PIXEL_FORMAT 열거형과 함께 사용됩니다. 다른 렌더링 대상 및 비트맵은 서로 다른 알파 모드를 지원합니다. 목록은 지원되는 픽셀 형식 및 알파 모드를 참조하세요.

직선 알파와 미리 곱한 알파의 차이점

직선 알파를 사용하여 RGBA 색을 설명할 때 색의 알파 값은 알파 채널에 저장됩니다. 예를 들어 60% 불투명한 빨간색을 설명하기 위해 다음 값을 사용합니다. (255, 0, 0, 255 * 0.6) = (255, 0, 0, 153). 255 값은 전체 빨간색을 나타내고, 153(255의 60%)은 색의 불투명도가 60%여야 함을 나타냅니다.

미리 곱한 알파를 사용하여 RGBA 색을 설명할 때 각 색은 알파 값 (255 * 0.6, 0 * 0.6, 0 * 0.6, 255 * 0.6) = (153, 0, 0, 153)을 곱합니다.

렌더링 대상의 알파 모드에 관계없이 D2D1_COLOR_F 값은 항상 직선 알파로 해석됩니다. 예를 들어 미리 곱한 알파 모드를 사용하는 비트맵과 함께 사용할 ID2D1SolidColorBrush 의 색을 지정할 때 비트맵에서 직선 알파를 사용하는 경우와 마찬가지로 색을 지정합니다. 브러시로 칠할 때 Direct2D는 색을 대상 형식으로 변환합니다.

렌더링 대상에 대한 알파 모드

알파 모드 설정에 관계없이 렌더링 대상의 콘텐츠는 투명도를 지원합니다. 예를 들어 알파 모드가 D2D1_ALPHA_MODE_IGNORE 렌더링 대상으로 부분적으로 투명한 빨간색 사각형을 그리면 예상대로 사각형이 분홍색으로 표시됩니다(배경이 흰색인 경우).

알파 모드가 CreateCompatibleRenderTarget 메서드일 때 부분적으로 투명한 빨간색 사각형을 그리면 투명도를 지원하는 비트맵을 만듭니다.

ClearType 및 알파 모드

렌더링 대상에 D2D1_ALPHA_MODE_IGNORE 이외의 알파 모드를 지정하면 텍스트 앤티앨리어싱 모드가 자동으로 D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE 에서 D2D1_TEXT_ANTIALIAS_MODE GRAYSCALE로 변경됩니다. ( D2D1_ALPHA_MODE_UNKNOWN 알파 모드를 지정하면 Direct2D는 렌더링 대상 유형에 따라 알파를 설정합니다. 각 렌더링 대상에 대해 D2D1_ALPHA_MODE_UNKNOWN 설정이 확인되는 항목 목록은 지원되는 픽셀 형식 및 알파 모드 개요를 참조하세요 .)

SetTextAntialiasMode 메서드를 사용하여 텍스트 앤티앨리어스 모드를 다시 D2D1_TEXT_ANTIALIAS_MODE CLEARTYPE으로 변경할 수 있지만 ClearType 텍스트를 투명한 표면으로 렌더링하면 예측할 수 없는 결과가 발생할 수 있습니다. ClearType 텍스트를 투명한 렌더링 대상으로 렌더링하려면 다음 두 가지 기술 중 하나를 사용하는 것이 좋습니다.

  • PushAxisAlignedClip 메서드를 사용하여 렌더링 대상을 텍스트가 렌더링될 영역으로 클리핑한 다음 Clear 메서드를 호출하고 불투명 색을 지정한 다음 텍스트를 렌더링합니다.
  • DrawRectangle을 사용하여 텍스트가 렌더링될 영역 뒤에 불투명 사각형을 그립니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 7, Windows Vista SP2 및 Windows Vista용 플랫폼 업데이트가 포함된 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
머리글 dcommon.h(D2d1.h 포함)

추가 정보

지원되는 픽셀 형식 및 알파 모드