株式会社インターワーク

JPEG XLって何? − JavaでJPEG XLを読み込む

JPEG XLは、従来のJPEGより高い圧縮効率で、画質を保ちながらファイルサイズを削減できる次世代の画像形式です。この記事では、特徴や使用例、Javaでの画像読み込み方法を解説します。

(更新:
JDeliJava画像処理
JPEG XLって何? − JavaでJPEG XLを読み込む

JPEG XL (ISO/IEC 18181) は、高い圧縮率と優れた画質を両立した新しい画像形式です。ロスレス圧縮と可逆圧縮の両方に対応しているため、画質を落とさずにファイルサイズを小さくできます。そのため、ウェブサイトでの画像配信の効率化や、レスポンシブウェブ環境向け、クラウドストレージの容量節約に非常に適しています。

JPEG XLはJoint Photographic Experts Group Extra-Largeの略で、従来のJPEGフォーマットから派生した頭字語です。一般的にJPEG XLに関連するファイル名の拡張子は.jxlです。

JPEG XLの主な特徴

  • 高圧縮と高画質の両立: JPEG XLは、従来のJPEGやWebPよりも大幅にファイルサイズを削減しつつ、高画質を維持できます。
  • ロスレスと可逆圧縮対応: プロ向けの写真やデザイン用途でも、画質を損なわずに圧縮可能です。
  • 既存JPEGとの互換性: 従来のJPEGファイルをJPEG XLに変換し、サイズを縮小しながら品質を保てます。
  • アニメーション対応: GIFやWebPの代替として、動画像にも対応しています。
  • 幅広い色空間サポート: 色彩豊かな画像や写真に適しており、写真やデザイン分野での活用が期待されています。
  • プログレッシブデコード対応: JPEG XLは、画像を段階的に高解像度へ表示でき、JPEGよりも効率的にプレビューを素早く提供します。

JPEG XLの普及

2023年、JPEG XLの普及において大きな進展がありました。Googleは一時的にChromiumでのJPEG XLサポートを終了しましたが、AppleがWWDC23でSafari 17での対応を発表しました。これにより、iOSやmacOSを含む全プラットフォームでJPEG XL画像の表示が可能になりました。この動きはJPEG XLの普及を促進し、Googleの再サポートも示唆しています。Appleが採用したことで、JPEG XL画像を扱う機会が増えてくるのではないでしょうか。

JavaでJPEG XLを読み込む方法

JPEG XLは比較的新しい画像形式で、現在JavaのImageIOやApache Commons Imagingではサポートされていません。JavaでJPEG XL画像を読み込むための方法をいくつか紹介します。

方法1: Jxlatteで読み込む

Jxlatteは開発中のJPEG XLデコーダーで、JPEG XL形式の画像をPNGなどの一般的な形式に変換できます。以下のコマンドでJPEG XLファイルをPNGに変換できます:

java -jar jxlatte.jar samples/art.jxl output.png

この方法で、JPEG XLを他の形式に変換し、Javaの標準ツールで処理できます。

方法2: JPEG-XLラッパーを使用

JPEG-XLライブラリのJavaラッパーがいくつかあります。これらは画像をBufferedImageに読み込むことはできますが、完全なネイティブ・ソリューションを提供するものではありません。

BufferedImage img = ImageIO.read(Paths.get("/foo/bar.jxl").toFile())

ラッパーを使用すると、JPEG XLを他の画像形式と同様に扱えますが、依存関係の設定が必要です。

方法3: JDeliを使用してJPEG XL画像を読み込む

JDeliはJPEG XL形式をネイティブにサポートするライブラリで、JPEG XL画像を直接BufferedImageとして読み込めます。JDeliを使用すると、JPEG XL画像を他の形式に変換したり、Javaで直接処理したりできます。

JDeliの使用手順:

  1. JDeliのトライアル版JARファイルをダウンロードし、クラスパスかモジュールパスに追加します。
  2. JPEG XL画像データを、Fileオブジェクト、InputStream、またはbyte[]で参照します。
  3. JPEG XL画像をBufferedImageとして読み込みます。

次のコードでJPEG XL画像を読み込めます:

File file = new File("/path/to/image.jxl");
BufferedImage img = JDeli.read(file);

JDeliは、JPEG XLを他の画像形式に変換可能です。標準ライブラリより多くの画像形式に対応し、JPEG XL画像を簡単に扱えます。

まとめ

JPEG XLは、その圧倒的な圧縮効率と高画質により、今後の画像フォーマットとして幅広い利用が期待されています。特にAppleのSafariでの対応が発表されたことで、JPEG XLの普及は大きく前進しました。Webサイトの画像配信、クラウドストレージの効率化、プロフェッショナルなフォトグラフィーやデザインの分野でも活用が進む可能性が高まりました。

JPEG XLは将来的にインターネット全体で標準フォーマットとして広く利用される可能性があり、今後の動向に注目が集まります。JavaでJPEG XL画像を読み込むには、標準ライブラリが対応していないため、Jxlatte、JPEG-XLラッパー、JDeliなどの外部ライブラリが必要です。特にJDeliはJPEG XLをネイティブサポートしており、最も簡単に画像を読み込むことができます。

JDeli

Java画像ライブラリ。HEIC・WebP・DICOMなど20以上のフォーマットに対応。ImageIOの最大7倍高速。

開発者向けPDF入門ガイド 表紙
無料 eBook / 25p

開発者向けPDF入門ガイド

PDFの仕様や活用方法など、開発者に必要な情報をコンパクトにまとめました。初めてPDFを扱う開発者にも分かりやすく、基礎から応用までカバーしているため、PDFのポテンシャルを最大限に引き出し、アプリケーション開発やドキュメント管理の効率化を図るための手引きとなるでしょう。

ご興味のある製品:

ご入力いただいた情報は、eBookの送付およびインターワークからのご案内にのみ使用いたします。プライバシーポリシー