Java Anti Aliasing到BufferedImage

时间:2014-04-04 14:57:29

标签: java image-resizing antialiasing

我正在尝试将以下代码转换为Java:

image = PIL.Image.open(iconFile)

image = image.convert('L').resize(
    (9, 8),
    Image.ANTIALIAS,
)

- >

BufferedImage picture = ImageIO.read(new File(iconFile));

int IMG_WIDTH = 9;
int IMG_HEIGHT = 8;

BufferedImage resizedImage = new BufferedImage(IMG_WIDTH, IMG_HEIGHT, BufferedImage.TYPE_BYTE_GRAY);
Graphics2D g = resizedImage.createGraphics();

g.drawImage(picture, 0, 0, IMG_WIDTH, IMG_HEIGHT, null);
g.dispose();

如何执行抗锯齿操作?我的应用程序是一个缩放图像的命令行工具。

1 个答案:

答案 0 :(得分:2)

我最近也必须这样做。我发现Java默认图像重新缩放操作不适合缩小图像尺寸并留下低质量的画面。

最后我开始使用the java-image-scaling library。它非常好用且易于使用,并提供非常好的表面处理。

示例用法是:

ResampleOp  resampleOp = new ResampleOp (100,200);
BufferedImage destImage= resampleOp.filter(sourceImage, null);