Morphio
メニュー

HEIC MIME type — ヘッダーと実ファイルを区別する

Content-Typeは、送るデータの種類を伝える情報です。HEICに合う値を設定しても、画像の変換やブラウザーの対応までは変わりません。ヘッダーと実ファイルの両方を確認しましょう。

登録されている媒体型と適用範囲

媒体型登録上の対象注意点
image/heic対応ブランドの条件に従い、HEVCで符号化された画像アイテムを含むファイル一つ以上の画像アイテムを含み得ます。「必ず一画像」とは限りません。
image/heifHEIFの条件に従う画像アイテムを含むファイル符号化方式を一種類に限定しません。
image/heic-sequenceHEVCを用いる画像シーケンスに関する媒体型静止画像アイテムを複数含むファイルと、時間順のシーケンスを混同しません。
image/heif-sequence画像シーケンスに関する媒体型実ファイルが登録の条件に従うか確認します。

媒体型は、実ファイルに合うものを使う

HEIC MIME typeの値は、拡張子の印象ではなく登録内容を確認します。IANAの画像アイテムの登録と画像シーケンスの登録には、それぞれの条件があります。HEICそのものの説明は形式の基本をご覧ください。

HEIC Content Typeは、実際に送るファイルの種類に合わせて設定します。拡張子やヘッダーだけをimage/jpeg相当に変えても、写真はJPGにはなりません。

どの段階の情報かを区別する

場面確認するものそれだけでは分からないこと
HTTPレスポンスサーバーが返すContent-Typeと実際のレスポンス本文ブラウザーのデコード能力
アップロード受付クライアントの申告、ファイル名、実データの検証結果申告だけで安全なファイルと保証すること
オブジェクト保存保存時のメタデータと、配信時のヘッダー保存した属性が全配信経路でそのまま使われること
アプリ内処理実際に読み込めるデータとデコーダーの対応拡張子だけから画像構成を確定すること

取得・保存・配信を順に確認する

  1. アップロードされた実ファイルを、想定した検証処理で確認します。
  2. 保存オブジェクトに付けた媒体型を確認します。
  3. 実際の配信URLで、返るヘッダーと本文が想定どおりかを確認します。
  4. 途中にキャッシュや別の配信経路がある場合は、そのレスポンスも確認します。
  5. ブラウザーでの表示成否は、取得とは別に検証します。

HEIC MIME typeを直しただけで表示問題が解消するとは限りません。空ファイルや別内容のレスポンス、取得エラー、デコード失敗を別々に扱うと切り分けやすくなります。

Webページで表示する場合

imgやpictureを使う場合はHTMLでHEICを扱うときの確認点、ブラウザー内の処理を組む場合はJavaScript側の処理設計をご覧ください。媒体型と、実行環境がその画像をデコードできるかは別です。

言語ごとの実装条件を確認する

手動で別形式の画像を用意するだけなら、HEICの変換形式一覧で写真を変換できます。ブラウザーで使う変換ツールであり、MIME検査用のAPIやSDKではありません。

よくある質問

媒体型の設定、アップロードの検証、ブラウザー表示について。

HEIC MIME typeは拡張子だけで決められますか?

拡張子は手掛かりですが、登録条件と実際のファイルを確認してください。

HEIC Content Typeをimage/jpegにすればJPGになりますか?

いいえ。宣言を変えるだけで画像データは変わりません。

アップロード時のMIMEが正しければ安全ですか?

いいえ。送信者の申告だけを信用せず、アップロードされた実際のデータを検証してください。

正しいContent-Typeなら全ブラウザーで表示できますか?

媒体型の宣言とデコーダーの対応は別です。対象の実行環境で確認してください。