ウルトラ HDR 画像を編集する

ウルトラ HDR 画像形式で輝度情報をエンコード デバイスを明るく表示 画像が生成されます。アプリでウルトラ HDR 画像を編集すると、 輝度情報を保持する必要があります。これは、 ユーザーのデバイスがウルトラ HDR 画像のフル表示に対応していない あります。結局のところ、ユーザーはデバイスを持っている人と画像を共有する可能性があります。 超 HDR 対応の HDR 動画を撮影するか、その画像を 。

幸い、ビットマップを編集するほとんどの Android メソッドは、ウルトラ HDR 画像形式をサポートしています。画像の切り抜きや、写真の切り抜きなど、 回転させると、標準の Android メソッドが機能します。 新しいサイズや向きのウルトラ HDR 画像を作成します。

画像の内容を変更する場合は、作業が難しくなります。これらの 標準の編集方法では、元の画像の輝度情報が維持されます。 old イメージに付けられますが、これは意図したものではない可能性があります。その場合は、正しい結果を得るために、ゲインマップ(画像の明るさ情報をエンコードするマップ)を編集または削除する必要があります。

ウルトラ HDR 形式の概要

ウルトラ HDR 画像形式については、ウルトラ HDR 画像 仕様をご覧ください。理解しておくべき最も重要なことは、 ウルトラ HDR 画像には、プライマリ画像ゲインマップの両方が含まれます。

  • プライマリ画像には、画像の各ピクセルの色情報が含まれます。
  • ゲインマップは、プライマリ画像と同じアスペクト比の標準 JPEG 画像です(ピクセルサイズは同じとは限りません)。各ピクセルは は、ゲインマップの対応する部分の輝度を 選択します。

ゲインマップはグレースケールまたはカラーのいずれかです。ゲインマップがカラーの場合、ゲインマップの各カラー チャンネルは、プライマリ イメージの対応する部分のそのカラー チャンネルの輝度を指定します。ゲインマップがグレースケールの場合、ゲインマップの各ピクセルは、プライマリ画像のその部分の 3 つのカラーチャネルの輝度を指定します。

ゲインマップの比率はプライマリ画像と同じにする必要がありますが、 ピクセルサイズが同じである必要はありません実際、Android プラットフォームが Ultra HDR 画像を作成するときには、プライマリ画像よりも幅と高さが小さいゲインマップを作成します。これによりファイルサイズが大幅に小さくなりますが、良好な結果を得るのに十分な情報をエンコードします。つまり、ゲインマップの各ピクセルに、プライマリ画像の複数のピクセルの輝度情報が保存される可能性があります。

ウルトラ HDR の基本的な編集

Android の Bitmap API を使用してウルトラ HDR 画像に基本的な変換を加えると、メソッドによってゲインマップが適切に変更されます。次の Bitmap オペレーションがサポートされています。

  • 回転: ウルトラ HDR 画像を回転する場合、メソッドはゲインを回転させます。 表示されます。
  • 切り抜き: ウルトラ HDR 画像を切り抜くと、ゲインマップが切り抜かれます。 適切に分類します
  • 縮尺: ウルトラ HDR 画像を拡大縮小する場合、メソッドはゲインマップを拡大縮小します。 サイズ変更したメイン画像の幅と高さの半分のサイズになります。

いずれの場合も、明るさの情報は保持されます。

高度なウルトラ HDR 編集

ウルトラ HDR 画像に複雑な編集を加えると、ゲインマップは変更されず、望ましい結果が得られない可能性があります。

このような状況につながる一般的な編集は次のとおりです。

  • ステッカーや絵文字の追加: 追加したステッカーには、 輝度と色の鮮度の値を使用します。
  • 2 番目の画像のオーバーレイ: 新しい画像では、輝度と コンテンツの色彩度情報が含まれます。
  • フィルタの追加: 古いゲインマップの情報が、変更されたプライマリ画像に適していない可能性があります。

いずれの場合も、古い明るさと色の鮮明さの情報は保持されますが、変更された画像には適さない場合があります。

元のゲインマップが編集後の画像に適切であれば、 何でもできます。ゲインマップを変更する場合は、通常のワークフローは次のとおりです。

  1. 次の呼び出しを使用して、画像の現在のゲインマップを取得します。 Bitmap.getGainmap() してキャッシュに保存します。
  2. 必要に応じてメイン画像を変更します。
  3. キャッシュされたゲインマップに対して、対応する編集を行います。たとえば、絵文字をメイン画像に貼り付けた場合は、ゲインマップの対応する部分を中性値(Color.GRAY など)に設定します。

  4. 以下を呼び出して、変更されたゲインマップを画像に適用し直しますBitmap.setGainmap()

参考情報

ウルトラ HDR 画像について詳しくは、以下の参考情報をご覧ください。