1

imgsclr 4.2 ( http://www.thebuzzmedia.com/imgscar-3-2-released/comment-page-1/#comment -650387 )。

240X320 の画像があり、 50X75 および 120X180 にサイズ変更する必要があります。次のコードを使用して両方を別々に試しました(imgscar 4.2を使用しています)。

image=resize(image,Method.ULTRA_QUALITY, 50,75, OP_ANTIALIAS, OP_BRIGHTER);
saveImage(image, ImageFormatTypes.JPEG, DESTINATION + RESIZED_IMAGE + “.”+ImageFormatTypes.JPEG);

2 つの問題があります。#1は、手動で画像のサイズを変更するために使用した他の内部ツールと比較して非常に低品質です. #2。出力の幅が 50 から 56 に、120 から 135 に増加しますが、これは奇妙です。

なぜこれらが起こっているのか分かりますか?私はあなたの助けに感謝します。 元の画像 サイズ変更された画像

4

1 に答える 1

3

中心的な問題は imgsclr にあるとは思いませんが、jpg. jpg は損失ベースのアルゴリズムを使用し、画像の一部をダンプしてサイズを小さくすることに注意してください。

比較のために、以下の 2 つの画像は同じ方法を使用して生成されましたが、左は を使用jpgして出力され、右はpng( ImageIOAPI を使用して)を使用して出力されました。

比較

というわけでトップ画像は同じマスター画像です。

ULTRA_QUALITY2 行目は、、、およびメソッドAUTOMATICを使用した imgsclrです。2行目の最後の画像は使用していますBALANCEDQUALITYSPEED

最後の行は、深刻な「その他の」スケーリング方法です。最初の 2 つは分割統治法を使用し、目的のサイズに達するまで画像を 2 で分割します。1 つは「埋める」、もう 1 つは「収まる」です (1 つは使用可能なスペースをいっぱいにし、もう 1 つはスペースに収まるようにします)。3番目の画像は使用しImage#getScaledInstanceており、アルファチャンネルをどこかに導入したようです。そのため、jpgバージョンは赤ですが、品質を比較していました;)

サイズが大きくなる理由は、画像の縦横比を維持しようとする imgsclr にある可能性があります。

そして最後に...

ここに画像の説明を入力

BufferedImageOpこれは、 、 using OP_BRIGHTEROP_ANTIALIASOP_BRIGHTEROP_ANTIALIASnone を右から左に比較します...

これらはPNGとして出力されます

于 2015-02-24T00:40:30.283 に答える