我正在编写一个快速的Java小类,它将图像大小调整为各种较小的尺寸(大/小/缩略图等)。我看过其中包含RenderingHints的示例。输出文件比没有文件大得多。

我的问题是:如果要调整大小的图像没有文本,是否需要使用RenderingHints?

int IMG_WIDTH = 100;
int IMG_HEIGHT = 100;

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();
g.setComposite(AlphaComposite.Src);

g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);


我从一个45kb的图片开始,输出差异是3kb的文件(不带RenderingHints)与24kb的文件(带RenderingHints)

最佳答案

我想在阅读以下stackoverflow.com问题/答案之后:


Java Text on Image


我倾向于认为,当照片不包含任何文本时,RenderingHints不会为我带来任何好处。在这种情况下,没有文本=否RenderingHints =较小的调整大小的图像

10-08 08:37