울트라 HDR 이미지 표시

울트라 HDR 이미지 형식을 사용하면 이미지에 추가 정보를 저장할 수 있습니다. 빛의 세기에 대해 측정하여 밝은톤과 그림자를 더 상세하게 표현하고, 더 강렬한 색으로 표현할 수 있습니다. Android는 울트라 HDR 이미지 지원을 제공하며 Android 14 (API 수준 34)와 호환되어야 합니다. 앱이 이러한 버전에서 실행 중인 경우 이러한 이미지를 올바르게 표시하도록 앱을 구성하는 것이 중요합니다. 다른 한쪽에는 앱에서 울트라 HDR 이미지를 표시하지 않는 경우 리소스를 많이 사용할 수 있습니다. 이 페이지에서는 그래픽이 울트라 HDR을 지원하는지 여부와 이를 제대로 표시하는 방법을 알아보세요.

표준 다이내믹 레인지와 HDR(High Dynamic Range) 사이의 차이를 시뮬레이션한 그래픽 그래픽은 흐린 하늘의 풍경을 보여줍니다. 오른쪽 절반은 HDR을 시뮬레이션하여 더 밝은 하이라이트, 어두운 그림자, 더 선명한 색상으로 표현되었습니다.
그림 1. 표준 클러스터와 표준 다이내믹 레인지 (SDR) 및 HDR (High Dynamic Range) 이미지도 있습니다. 기기가 HDR을 사용하면 이미지의 그림자가 더 어둡고 하이라이트가 더 밝을 수 있습니다.

게인 맵이 있는지 확인

울트라 HDR 이미지에는 게인 맵이 포함되어 있습니다. 게인 맵은 이미지에서 각 픽셀의 밝기가 증가했는지를 판단하는 데 사용됩니다. 인증 방법 이미지가 울트라 HDR 형식인 경우 이미지 또는 드로어블을 BitmapBitmap.hasGainMap() 호출 (Android 14부터 사용 가능)를 사용하여 게인 맵이 있는지 확인합니다.

창에서 울트라 HDR을 표시하도록 구성

풀 다이내믹 레인지로 울트라 HDR 이미지를 표시하려면 창의 색상을 설정하세요. 모드를 ActivityInfo.COLOR_MODE_HDR로 변경합니다. 이렇게 하려면 창의 setColorMode() 메서드 (이러한 API는 Android 8부터 사용 가능 단, 울트라 HDR 화질의 동영상이 아닌 경우 기기에서 Android 14 이상을 실행 중임)

종합적으로 살펴보기

다음 코드는 전체 프로세스의 모습을 보여줍니다. 이 코드는 이미지, 이미지, 오디오, 가 비트맵에 로드되고 이미지에 게인 맵이 있는지 확인합니다. 지원하는 경우 코드가 창의 색상 모드를 COLOR_MODE_HDR로 전환합니다. 만약 이미지에 게인 맵이 없으면 코드가 창을 기본값으로 전환합니다. 색상 모드

Kotlin

val bitmap = /* Get Bitmap from Image Resource */
binding.imageContainer.setImageBitmap(bitmap)

// Set color mode of the activity to the correct color mode.
requireActivity().window.colorMode =
   if (bitmap.hasGainmap()) ActivityInfo.COLOR_MODE_HDR else ActivityInfo.COLOR_MODE_DEFAULT

Java

final Bitmap bitmap = /* Get Bitmap from Image Resource */
binding.imageContainer.setImageBitmap(bitmap);

// Set color mode of the activity to the correct color mode.
int colorMode = ActivityInfo.COLOR_MODE_DEFAULT;
if (bitmap.hasGainmap()) colorMode = ActivityInfo.COLOR_MODE_HDR;
requireActivity().getWindow().setColorMode(colorMode);

추가 리소스

울트라 HDR 이미지에 관해 자세히 알아보려면 다음 추가 리소스를 참고하세요.