-
まずはお試しください
-
Jdeliを実行する
-
Javaで画像ファイルを読み込む
-
Javaで画像ファイルを書き出す
-
対応しているフィルター
-
画像を変換する
-
画像別変換(サンプルコード付き)
-
画像を加工する
-
ヒント&テクニック
-
ライセンスとバージョン
-
アップデート情報
Javaで画像ファイルを読み込むサンプルコード
Javaで様々な画像ファイルフォーマットからBufferedImageを読み込む方法を示す簡単なサンプルコードです。サンプルコードをコピー&ペーストするだけでご利用いただけます。
JDeliは、サポートされている画像ファイルフォーマットを自動的に検出します。画像ファイルは、File、InputStream、またはバイト配列からアクセスできます。
BufferedImage image = JDeli.read(imageData); // byte[] imageData
BufferedImage image = JDeli.read(filePath); // File filePath
BufferedImage image = JDeli.read(inputStream); // InputStream inputStream
現在、以下のフォーマットをサポートしています。
画像フォーマット別のサンプルコード例:
JDeliのBMP Decoderを使えば、JavaでBMP画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- Bilevel、Grayscale、RGB画像に対応
クイックスタート:
BufferedImage image = JDeli.read(bmpImageFile);
または
BmpDecoder decoder = new BmpDecoder();
BufferedImage image = decoder.read(bmpData);
JDeliのDICOM Decoderを使用すると、JavaでDICOM画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。ネイティブコードへのDLLや依存はありません。
- 圧縮:非圧縮、jpeg2000、jpeg、jpegロスレス
- フレーム:シングルまたはマルチフレーム
クイックスタート:
BufferedImage image = JDeli.read(dicomImageFile);
または
DicomDecoder decoder = new DicomDecoder();
BufferedImage image = decoder.read(dicomData);
マルチフレームDICOMファイルの読み込み
これにはDicomDecoderクラスが必要です。
File file = new File("/path/to/file");
DicomDecoder dec = new DicomDecoder();
int totalFrames = dec.getFrameCount(file);
for (int i = 0; i <= totalFrames; i++) {
BufferedImage image = dec.read(i , file); // i is the frame number
// Insert BufferedImage handling code here
}
JDeliのEMF Decoderを使うと、EMFイメージファイルをJavaで読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- rgbコンポーネントのサポート
クイックスタート:
BufferedImage image = JDeli.read(emfImageFile);
または
EmfDecoder decoder = new EmfDecoder();
BufferedImage image = decoder.read(emfData);
JDeliのGIF Decoderを使えば、JavaでGIF画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- GIF 87A, 89Aの規格をサポート
クイックスタート:
BufferedImage image = JDeli.read(gifImageFile);
または
GifDecoder decoder = new GifDecoder();
BufferedImage image = decoder.read(gifData);
JDeliのHEIC Decoderを使えば、HEICイメージファイルをJavaで読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- Bilevel、Grayscale、RGB画像に対応。
クイックスタート:
BufferedImage image = JDeli.read(heicImageFile);
または
HeicDecoder decoder = new HeicDecoder();
BufferedImage image = decoder.read(heicData);
JDeliのJPEG Decoderを使えば、JavaでJPEG画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- カラースペース:グレースケール、RGB、CMYK、YCCK画像
- サンプルあたりのビット数:8、12ビット精度
クイックスタート:
BufferedImage image = JDeli.read(jpegImageFile);
または
JpegDecoder decoder = new JpegDecoder();
BufferedImage image = decoder.read(jpegData);
JDeliのJPEG2000デコーダーを使えば、JavaでJPEG2000の画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- Bitlevel、Grayscale、RGB、CMYK、YCCK画像に対応
- Java最速のJpeg2000デコーダ
クイックスタート:
BufferedImage image = JDeli.read(jpeg2000ImageFile);
または
Jpeg2000Decoder decoder = new Jpeg2000Decoder();
BufferedImage image = decoder.read(jpeg2000Data);
JDeliのPNG Decoderを使えば、JavaでPNG画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- サポート:インターレース、フィルタリング
- ビット当たりサンプル数:1、2、4、8、16-Bits
クイックスタート:
BufferedImage image = JDeli.read(pngImageFile);
または
PngDecoder decoder = new PngDecoder();
BufferedImage image = decoder.read(pngData);
パフォーマンス比較:
これらの図は、標準的な画像のセットで、jmh(私たちのブログで紹介されています)を使用して生成されました。もし、皆さんが検証したいのであれば、簡単に再現することができるはずです。
数値が高いほど良い結果です。
ベンチマーク | モード | Cnt | スコア | エラー | ユニット |
---|---|---|---|---|---|
PNG.Apache | thrpt | 25 | 52.299 | ± 0.837 | ops/s |
PNG.ImageIO | thrpt | 25 | 9.398 | ± 0.409 | ops/s |
PNG.JDeli | thrpt | 25 | 83.952 | ± 3.421 | ops/s |
2020 16inch MacBook ProでOpenJDK 14.0.1を使用してテストしています – 2021年3月11日
JDeliのPSD Decoderを使えば、JavaでPSD画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- 非可逆圧縮に対応
クイックスタート:
BufferedImage image = JDeli.read(psdImageFile);
または
PsdDecoder decoder = new PsdDecoder();
BufferedImage image = decoder.read(psdData);
JDeliのSGI Decoderを使用すると、JavaでSGIイメージファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- カラースペース:RGB、RGBA、グレイスケール、インデックス付き画像
クイックスタート:
BufferedImage image = JDeli.read(sgiImageFile);
または
SgiDecoder decoder = new SgiDecoder();
BufferedImage image = decoder.read(sgiData);
JDeliのTIFF Decoderを使えば、JavaでTIFF画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
圧縮:CCITT 3,4、Pack bit、LZW、Adobe Deflate、JPEG technote2およびDeflate
色空間:バイレベル、グレースケール、RGB、ARGB、CMYK、ACMYK、YCBCR
サンプルあたりのビット数:1~32
バイトオーダー:リトルエンディアン,ビッグエンディアン
その他:シングル・マルチファイル、タイリング、プレーナー(チャンキー、セパレート)、プレディクター、16/32ビットフローティングサンプル
クイックスタート:
BufferedImage image = JDeli.read(tiffImageFile);
または
TiffDecoder decoder = new TiffDecoder();
BufferedImage image = decoder.read(tiffData);
パフォーマンス比較:
これらの図は、標準的な画像のセットで、jmh(私たちのブログで紹介されています)を使用して生成されました。もし、皆さんが検証したいのであれば、簡単に再現することができるはずです。
数値が高いほど良い結果です。
ベンチマーク | モード | Cnt | スコア | エラー | ユニット |
---|---|---|---|---|---|
TIFF.Apache | thrpt | 25 | 6.601 | ± 0.119 | ops/s |
TIFF.ImageIO | thrpt | 25 | 7.976 | ± 0.140 | ops/s |
TIFF.JDeli | thrpt | 25 | 11.298 | ± 0.363 | ops/s |
2020 16inch MacBook ProでOpenJDK 14.0.1を使用してテストしています – 2021年3月11日
マルチイメージのtiffファイルを読み込む
これには TiffDecoder クラスが必要です。
File file = new File("/path/to/file");
TiffDecoder dec = new TiffDecoder();
int totalImages = dec.getImageCount(file);
for (int i = 0; i <= totalImages; i++) {
BufferedImage image = dec.read(i , file); // i is the image number
// Insert BufferedImage handling code here
}
JDeliのWEBP Decoderを使えば、JavaでWEBP画像ファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- 非可逆圧縮に対応
クイックスタート:
BufferedImage image = JDeli.read(webpImageFile);
または
WebpDecoder decoder = new WebpDecoder();
BufferedImage image = decoder.read(webpData);
JDeliのWMF Decoderを使えば、JavaでWMFイメージファイルを読み込むことができます。
主要な情報
- 100%Javaソリューション。DLLやネイティブコードへの依存なし
- rgbコンポーネントをサポート
クイックスタート:
BufferedImage image = JDeli.read(wmfImageFile);
または
WmfDecoder decoder = new WmfDecoder();
BufferedImage image = decoder.read(wmfData);