0

Java2DGraphicsクラスを使用して画像のサイズを変更しました。しかし、それは正しく見えません。

    BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, type);
    Graphics2D g = resizedImage.createGraphics();
    g.drawImage(originalImage, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
    g.dispose();

アーティファクトを導入せずに画像を拡大縮小することは可能ですか?

4

3 に答える 3

1

一般的に言って、ビットマップグラフィックスは適切に拡大縮小されません。画像のサイズを大きくすると劣化が特に顕著になりますが、縮小しても、特に積分因子で拡大縮小しない場合は、望ましくないアーティファクトが発生する可能性があります。

表示用に単一の画像の複数のサイズが必要な場合の最善の解決策は、ベクター*グラフィックを使用するか、使用しいる最高の忠実度のビットマップを使用して、積分係数で縮小することです。

※ベクターグラフィックは写真等のオプションではありませんのでご注意ください。

于 2010-03-06T05:27:27.250 に答える
0

Chris Campbellによるこの記事には、Java2Dを使用した画像のスケーリングに関する詳細情報がたくさんあります。

スケーリングの品質に関して使用できるオプションは多数あります。一般に、品質が高いほど、スケーリングにかかる​​時間が長くなります(パフォーマンスと品質のトレードオフ)。

記事の情報はおそらくスケーリングの見栄えを良くするのに役立ちますが、@ Kevinが彼の回答で述べているように、結局のところ、スケーリングが完全に完璧になることはありません。

于 2010-03-06T05:34:49.827 に答える
0

java-image-scalingライブラリを調べることができます。クイックテストにより、標準のJava2D/AWTツールを使用するよりも高品質のダウンスケール画像が作成されました。

于 2010-05-08T09:28:11.990 に答える