株式会社インターワーク

JavaでWebP→JPG変換するなら、開発ツールJDeliが便利

Javaで14種類の画像フォーマットを変換できるのがJDeliです。WebPからJPGもPNGからWebPも、WebPからHEICだって1行のコードで変換できます。無料トライアルで実力をお試しください。

(更新:
JDeliJava画像処理
JavaでWebP→JPG変換するなら、開発ツールJDeliが便利

Javaで画像フォーマットの変換を実装するとき、標準ライブラリーのImageIOだけでは対応できないフォーマットに悩んだ経験はないでしょうか。特にWebPは、Webの世界で急速にシェアを拡大しているにもかかわらず、Java標準のImageIOではサポートされていません。そんなときに頼りになるのが、Java画像ライブラリーJDeli(ジェイデリ)です。JDeliなら、WebPからJPGへの変換も、PNGからWebPへの変換も、わずか1行のコードで実現できます。

ネットの画像のWebPシェアは増すばかり

JavaでWebPを読み書きするアプリ開発のニーズが高まっています。主要なスマートフォンやデスクトップのウェブブラウザがWebPに対応したことで、サイト側・アプリ側でも「積極的にWebPを使おう」という機運が高まっています。実際、HTTP Archiveの統計データによると、Webページで使用される画像のうちWebPの割合は年々増加しており、JPEGやPNGに次ぐ主要フォーマットとしての地位を確立しつつあります。

WebPとは?

WebPとは、Googleが開発し2010年にオープン標準として公開した画像フォーマットです。高い画像圧縮率によりネット転送量を減らし、ウェブ表示を高速化・効率化できます。JPEGと比較して25〜35%程度ファイルサイズを削減でき、PNGと比較しても26%程度の圧縮改善が見込めるとされています。

WebPの主な特長は次のとおりです。

  • 非可逆圧縮と可逆圧縮の両対応: 用途に応じて圧縮方式を選択可能
  • アルファチャンネル対応: 非可逆圧縮でも透過画像を扱える(JPEGにはない機能)
  • アニメーション対応: アニメーションWebPにより、GIFの代替としても利用可能。GIFより高品質で小サイズ
  • フルカラー対応: 24ビットカラー(約1,677万色)をサポート

WebPの読み方は、英語圏では「ウェッピー」と、日本では「ウェブピー」と発音する人が多いです。

JavaでWebPを扱う課題

Java標準のImageIOはWebPフォーマットをサポートしていないため、WebPを扱うには外部ライブラリーの導入が必要です。一部のオープンソースライブラリーはネイティブコード(C/C++ライブラリー)に依存しており、プラットフォームごとのビルドやJNI設定が必要になることがあります。また、読み込みのみ対応で書き出しに非対応というライブラリーも少なくありません。

JDeliは、Pure Java(100% Javaコード)で実装されているため、ネイティブ依存の問題がなく、Javaが動作するあらゆる環境でWebPの読み書き・変換が可能です。ImageIOと書式がほぼ互換なので、ImageIOに慣れている方ならコードを書くのは容易でしょう。

WebPを読み込む

BufferedImage image = JDeli.read(webpImageFile);

または

WebpDecoder decoder = new WebpDecoder();
BufferedImage image = decoder.read(webpData);

WebPを書き出す

JDeli.write(myBufferedImage, "webp", outputStreamOrFile);

または

byte[] outputData = JDeli.write(myBufferedImage, "webp");

オプション付きでWebPを書き出す

final WebpEncoderOptions options = new WebpEncoderOptions();
options.setCompressionFormat(WebpCompressionFormat.LOSSLESS);
JDeli.write(myBufferedImage, options, outputStreamOrFile);

WebpEncoderOptionsで出力オプション(圧縮方式、品質レベルなど)を細かく指定できます。非可逆圧縮(LOSSY)と可逆圧縮(LOSSLESS)を用途に応じて切り替えられるので、ファイルサイズと画質のバランスを自由にコントロールできます。

JDeliは14種の画像フォーマットを相互変換

JDeliが対応する画像フォーマットは、BMP、GIF、HEIC、JPEG、JPEG2000、PNG、SGI、PSD、TIFF、WEBP、WMFなど14種類に及びます。これだけの種類を1つのライブラリーでカバーできるため、フォーマットごとに別々のライブラリーを導入する必要がありません。

ImageIOよりも高性能・高効率なので、ImageIOからJDeliに移行するのもいいかもしれません。マルチページTIFFにも対応しているので、図面アプリやFAXアプリといった業務システム開発にも向いています。

画像ファイルのフォーマット変換をするなら、変換「前」フォーマットと変換「後」フォーマットをダイレクトに指定できます。つまり対応する画像フォーマット14種類を、入力14種類×出力14種類の形で任意に指定できるので簡単です。バッファに読んでから書くとか、中間フォーマットを経由して変換する必要がないので、メモリ確保・解放といったトラブルとも無縁でいられます。

WebPをPNGに変換する(4パターン)

JDeli.convert(File inFile, File outFile);
JDeli.convert(InputStream inFile, OutputStream outfile, String format);
byte[] outputData = JDeli.convert(byte[] inputData, String format);
JDeli.convert(File inFile, EncoderOptions outputOptions, File outfile);

EncoderOptionsで出力オプションを指定できます。入力フォーマットは拡張子やファイルヘッダーから自動判別されるため、わざわざ指定する必要はありません。

典型的なユースケース

JDeliが活躍する代表的なシーンをいくつか紹介します。

  • Webアプリでのアップロード画像変換: ユーザーがアップロードした画像(WebP、HEIC、PNGなど)をサーバーサイドでJPEGに統一変換し、ストレージコストを削減
  • サムネイル生成: 大量の画像からサムネイルを一括生成するバッチ処理
  • レガシーシステム対応: 古いフォーマット(BMPやTIFF)で保存された画像を、最新のWebPやJPEGに変換して配信を最適化
  • 業務システム連携: FAXや図面管理システムのマルチページTIFFを、ページ単位のJPEGやPNGに分割

まとめ

Javaで画像を扱う開発には多機能・高性能な開発ライブラリー(SDK)JDeliがきっとお役に立つことと思います。WebPはもちろん、HEICやJPEG2000など、ImageIOでは対応できないフォーマットもカバーしています。Pure Java実装のため環境を選ばず、導入も簡単です。

JDeliは無料で試用していただけます。画像フォーマット変換の機能や動作速度などを、まずはご自身の環境でご確認のうえ、ぜひ導入をご検討ください。

JDeli

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

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

開発者向けPDF入門ガイド

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

ご興味のある製品:

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