Java PNG Writer
JDeli Java画像ライブラリには、JavaでPNGファイルを書き込むためのPNG Writerが含まれています。PNGエンコーダーは100% Javaで記述されており、依存関係なしでPNGサポートを提供します。
- 100% Javaソリューション。dllやネイティブコードへの依存なし
- 比較的高速な圧縮
- PngQuantization: カラーをインデックス化することでPNGファイルのサイズを縮小する8ビット圧縮をサポート
JDeli.write(myBufferedImage, "png", outputStreamOrFile);
または
byte[] outputData = JDeli.write(myBufferedImage, "png");
JDeli.write(myBufferedImage, OutputFormat.PNG, outputStreamOrFile)
OutputFormat を使用すると、サポートされている任意の画像フォーマットを設定できます
final PngEncoderOptions options = new PngEncoderOptions();
//optionsインスタンスに任意のオプションを設定 - 以下に例を示します
options.setCompressionFormat(PngCompressionFormat.QUANTISED8BIT);
options.setCompressionFormat(PngCompressionFormat.NONE);
//書き出し
JDeli.write(myBufferedImage, options, outputStreamOrFile);
PngEncoderOptions を使用すると、特定のオプションを設定できます。
画像に対してさまざまな画像処理操作を実行できます。詳細なドキュメントはこちら をご覧ください。
これらの数値は、標準的な画像セット(同様にドキュメント化されています)を使用してjmh(ブログで説明 )で生成されました。検証したい場合は、簡単に再現できるはずです。コードはGitHub で公開されています。
数値が高いほど優れています。
モード: スループット カウント: 25 単位: ops/s
| ベンチマーク | スコア | エラー |
|---|---|---|
| Apache | 8.152 | ± 0.235 |
| ImageIO | 10.993 | ± 0.544 |
| JDeli_quantised | 2.938 | ± 0.370 |
| JDeli_fast | 32.083 | ± 2.395 |
| JDeli_compressed | 5.229 | ± 0.636 |
| JDeli_uncompressed | 33.386 | ± 1.962 |
| 出力ファイル | 平均ファイルサイズ |
|---|---|
| リファレンスファイル | 179.8KB |
| Apache | 185KB |
| ImageIO | 189KB |
| JDeli_compressed | 183.4KB |
| JDeli_fast | 189.2KB |
| JDeli_quantised | 63.8KB |
| JDeli_uncompressed | 189.2KB |
JDK 18.0.1.1を使用した2020年製13インチM1 MacBook Proでテスト
