我正在编写一个快速的小 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)