Java图像 - “1对1”图像缩放

时间:2014-04-16 16:57:37

标签: java image scaling

我希望我的测试游戏具有像素风格的外观,但是当我将它们缩放到我希望它们显示的尺寸(50x50;实际尺寸的瓷砖是16x16)时,它会变得丑陋平滑看起来我不想要。

img = new Image("test.png").getScaledCopy(50,50);

测试图像的大小是16x16,我希望它以50x50的大小显示,但是像1:1缩放,而不是丑陋的平滑方式。

有点像沙盒游戏" Minecraft",块砖等比显示的块小得多,但它们没有“平滑”#34;。

非常感谢您的帮助:)

1 个答案:

答案 0 :(得分:3)

在您的情况下,抗锯齿滤镜看起来很糟糕,因为您有一个非常小的图像(16x16)并且只是将它放大一小部分(到50x50)。在你的情况下,你可能想要一个更清晰的图像,所以你可能想要使用最近邻插值,而不是内置默认值(双线性或双立方,不完全确定哪个是默认值)。

Image original = …;
original.setFilter(Image.FILTER_NEAREST);
Image scaled = original.getScaledCopy();

所以在你的情况下,它会是这样的:

Image original;
Image scaled;
original = new Image("test.png");
original.setFilter(Image.FILTER_NEAREST);
scaled = original.getScaledCopy(50, 50);

请注意,这不是真正的“1:1”缩放,因为缩放因子不是整数比(即:50/16不是整数非十进制数)。如果你要升级到64x64,你可以进行“1:1”重新缩放,因为16*k=64,其中k是一个整数。