必要な処理を一つずつ分ける
HEIC Javaの実装で、メタデータを読めることと画像をデコードできることは別です。さらに、デコード結果をJPGへ保存できるか、保存したファイルが利用先で開けるかも確認が必要です。
格納形式の基本はHEICファイルの説明をご覧ください。ファイル名だけでなく、実際に含まれる画像やフレームも確認してください。
HTTPや保存先の媒体型を扱う場合はMIME typeとContent Typeも確認します。ファイル名やヘッダーの書き換えは、画像の変換の代わりにはなりません。
実行環境で確認すること
| 項目 | 確認内容 |
|---|---|
| JDKとJVM | 使用するバージョンと配布環境を固定する。 |
| デコーダー | 実際のHEIC/HEIF入力を読み込める実装があるか確認する。 |
| ネイティブ依存 | 必要な場合、OS・CPU・配布方式で利用可能か確認する。 |
| 出力処理 | JPGなど必要な形式を書き出せるか、入力側とは別に確認する。 |
| 運用条件 | 入力上限、一時ファイル、処理失敗、保存先を確認する。 |
HEIC Javaの変換処理を組み立てる
- 入力データを検証し、処理の対象を確認します。
- 対応するデコーダーで画像の内容を読み込みます。
- 複数の画像がある場合は、出力する対象を決めます。
- 向き、色、透明部分を含めた画素の扱いを決めます。
- 目的の形式で書き出し、出力を別の経路で開いて確認します。
画像読み込みのAPIがあっても、HEICを扱えるとは限りません。導入するリーダーやデコーダーの対応形式を確認し、使用中のJDKとOSで実ファイルを読み込んでみてください。
画素とメタデータを別に検証する
HEIC Javaで画像を書き出せたとしても、撮影日時や独自情報などがすべて移るとは限りません。残す必要がある情報と、出力形式で表現できる情報を整理してください。
失敗した段階から切り分ける
- 入力を受け付けられない:実データ、形式、上限を確認。
- デコードできない:入力構成と導入済みデコーダーを確認。
- JPGを書き出せない:出力処理、画素形式、透明部分の扱いを確認。
- 出力が開けない:書き込みの完了、保存先、実際の出力データを確認。
HEIC Javaの動作を記録するときは、JDK、OS、依存バージョン、テストしたファイルを一緒に残すと、別環境へ移す際に確認しやすくなります。
コードを書く前に写真を確認する
入力画像の内容を先に確認したい場合はビューアーで写真を開く方法、一度だけ別形式のコピーが必要なら変換ツールの一覧を使えます。どちらもブラウザーで操作するツールで、Java用のSDKやAPIではありません。
MorphioでJPGに変換すると、画質や残る情報が変わることがあります。保存した画像を確認し、元ファイルも残してください。
よくある質問
JVMとデコーダー、画像の選択、書き出し時の確認について。
HEIC JavaはJVMだけで必ず読み込めますか?
JVMがあるだけでは判断できません。導入するデコーダーと、実際の入力に対する読み込み機能を確認してください。
ネイティブ依存が必要ですか?
採用する実装によって異なります。必要な依存、対象OSとCPU、配布方式を公式情報と実行環境で確認してください。
複数の画像やフレームはどう扱いますか?
出力対象を明確にし、主画像だけか、複数の画像やフレームを扱うかを用途に合わせて決めます。実ファイルで選択結果を確認してください。
EXIF、向き、色は保持できますか?
画像の向きや色と、EXIFの書き出しを別々に確認してください。引き継げる情報は、使うライブラリと出力形式によって異なります。