我想尝试最多3次缩放图像。
例如,
向上缩放图像
我正在使用此library进行图片大小调整。
以下代码剪切了诀窍,
public static BufferedImage getScaledSampledImage(BufferedImage img,
int targetWidth, int targetHeight, boolean higherQuality) {
ResampleOp resampleOp = new ResampleOp(targetWidth, targetHeight);
resampleOp.setUnsharpenMask(AdvancedResizeOp.UnsharpenMask.Normal);
BufferedImage rescaledImage = resampleOp.filter(img, null);
return rescaledImage;
}
你可以看到调整后的图像质量较低。我希望我可以将图像缩放至少3倍于原始图像,而不会丢失质量。
是Pposible吗?我是否需要更改现有的库?
由于
答案 0 :(得分:5)
事实是,当您向上扩展图像时,它必须创建没有图像的数据。 (粗略地说)。为此,您必须在现有像素之间进行插值以填充新像素。您可以通过尝试不同类型的插值来获得更好的结果 - 但对于不同类型的图像,最佳方法将是不同的。
由于您的样本图像只是正方形,因此最近邻插值可能会给您带来最佳效果。如果你要放大一个风景图像或者一个肖像,你需要一个更聪明的算法。
结果很少看起来很完美,如果可能的话,最好从较大的图像开始!
看看这里以了解问题。 http://en.wikipedia.org/wiki/Image_scaling#Scaling_methods