我想为我的测试游戏提供像素风格的外观,但是当我将它们缩放到我希望它们显示的尺寸(50x50;图 block 的实际尺寸为 16x16)时,它会变得丑陋的平滑效果看起来我不想拥有。
img = new Image("test.png").getScaledCopy(50,50);
测试图像的大小是 16x16,我希望它以 50x50 的大小显示,但像 1:1 缩放,而不是丑陋的平滑方式。
有点像沙盒游戏“我的世界”中, block 图 block 等比显示的小得多,但它们没有“平滑”。
非常感谢您的帮助:)
最佳答案
在您的情况下,抗锯齿滤镜看起来很糟糕,因为您有一个非常小的图像(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
是一个整数。
关于Java 图像 - "1 to 1"图像缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23115640/