울트라 HDR 이미지 수정하기

울트라 HDR 이미지 형식은 기기에서 더 선명한 색상과 더 밝은 이미지를 표시할 수 있도록 밝기 정보를 인코딩합니다. 앱에서 울트라 HDR 이미지를 편집할 때 해당 광도 정보를 보존해야 합니다. 이는 사용자 기기가 최대 강도의 울트라 HDR 이미지 표시를 지원하지 않는 경우에도 중요합니다. 결국 사용자는 울트라 HDR을 지원하는 기기를 가진 다른 사람에게 이미지를 공유하거나 이미지를 저장한 다음 몇 년 후 새 기기에서 다시 볼 수 있습니다.

좋은 소식은 대부분의 Android 비트맵 수정 메서드가 울트라 HDR 이미지 형식을 지원한다는 것입니다. 이미지를 자르거나 회전하는 등 기본적인 이미지 수정을 하는 경우에는 표준 Android 메서드가 작업을 실행합니다. 그러면 새로운 크기나 방향의 울트라 HDR 이미지가 생성됩니다.

이미지의 콘텐츠를 수정하는 경우 작업이 더 까다롭습니다. 이 경우 표준 수정 방법으로 이전 이미지의 광도 정보를 유지하지만 이는 원하는 것과 다를 수 있습니다. 이러한 경우 올바른 결과를 얻기 위해 이미지의 광도 정보를 인코딩하는 게인 맵을 수정하거나 삭제해야 할 수 있습니다.

울트라 HDR 형식 개요

울트라 HDR 이미지 형식은 울트라 HDR 이미지 사양에 자세히 설명되어 있습니다. 울트라 HDR 이미지에는 기본 이미지게인 맵이 모두 포함되어 있어야 합니다.

  • 기본 이미지에는 이미지의 각 픽셀에 대한 색상 정보가 있습니다.
  • 게인 맵은 기본 이미지와 비율이 동일한 표준 JPEG 이미지이지만 픽셀 크기는 다를 수 있습니다. 게인 맵의 각 픽셀은 기본 이미지의 상응하는 부분의 휘도를 지정합니다.

게인 맵은 그레이 스케일 또는 컬러일 수 있습니다. 게인 맵이 색상인 경우 게인 맵의 각 색상 채널은 기본 이미지의 상응하는 부분에서 해당 색상 채널의 휘도를 지정합니다. 게인 맵이 그레이 스케일인 경우 게인 맵의 각 픽셀은 기본 이미지의 해당 부분에 있는 세 가지 색상 채널 모두의 휘도를 지정합니다.

게인 맵은 기본 이미지와 비율이 동일해야 하지만 픽셀 크기가 같을 필요는 없습니다. 실제로 Android 플랫폼에서 울트라 HDR 이미지를 생성하면 기본 이미지보다 너비와 높이가 작은 게인 맵이 생성됩니다. 이렇게 하면 파일 크기는 크게 작아지지만 여전히 좋은 결과를 얻기 위해 충분한 정보를 인코딩합니다. 즉, 게인 맵의 각 픽셀은 기본 이미지에 있는 여러 픽셀의 휘도 정보를 저장할 수 있습니다.

기본 울트라 HDR 편집

Android Bitmap API를 사용하여 울트라 HDR 이미지에 기본적인 변환을 적용하면 메서드는 게인 맵을 적절하게 변경합니다. 지원되는 Bitmap 작업은 다음과 같습니다.

  • 회전: 울트라 HDR 이미지를 회전하면 이 메서드는 게인 맵도 회전합니다.
  • 자르기: 울트라 HDR 이미지를 자르면 이 메서드가 게인 맵을 적절하게 자릅니다.
  • 배율: 울트라 HDR 이미지를 확장하는 경우 이 메서드는 크기가 조절된 기본 이미지의 너비와 높이의 절반이 되도록 게인 맵을 조정합니다.

각각의 경우 광도 정보가 보존됩니다.

고급 울트라 HDR 편집

울트라 HDR 이미지를 더 정교하게 수정하면 게인 맵은 변경되지 않고 유지되므로 원하는 결과를 얻지 못할 수 있습니다.

이러한 상황이 발생할 수 있는 일반적인 수정사항은 다음과 같습니다.

  • 스티커 또는 그림 이모티콘 추가: 추가된 스티커는 붙여넣은 영역과 동일한 밝기 및 색상 선명도 값을 가집니다.
  • 두 번째 이미지 오버레이: 새 이미지는 오버레이되는 콘텐츠의 밝기 및 색상 선명도 정보를 사용합니다.
  • 필터 추가: 이전 게인 지도의 정보가 수정된 기본 이미지에 적합하지 않을 수 있습니다.

각각의 경우 이전의 밝기 및 색상 선명도 정보는 유지되지만 수정된 이미지에는 적절하지 않을 수 있습니다.

원래 게인 맵이 수정된 이미지에 적합한 경우 아무 조치도 취할 필요가 없습니다. 게인 맵을 수정하려는 경우 일반적인 워크플로는 다음과 같습니다.

  1. Bitmap.getGainmap()를 호출하여 이미지의 현재 게인 맵을 가져오고 캐시합니다.
  2. 기본 이미지를 원하는 대로 수정합니다.
  3. 캐시된 게인 맵을 적절하게 수정합니다. 예를 들어 기본 이미지에 그림 이모티콘을 붙여넣었다면 게인 맵의 상응하는 부분을 Color.GRAY와 같이 중립 값으로 설정할 수 있습니다.

  4. Bitmap.setGainmap()를 호출하여 수정된 게인 맵을 이미지에 다시 적용합니다.

추가 리소스

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