【问题标题】:Java Images - "1 to 1" image scalingJava 图像 - “1 比 1”图像缩放
【发布时间】:2014-04-16 16:57:37
【问题描述】:

我希望我的测试游戏具有像素风格的外观,但是当我将它们缩放到我希望它们显示为(50x50;图块的实际大小为 16x16)的大小时,它会变得很难看出去看看我不想拥有。

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

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

有点像沙盒游戏“我的世界”,方块等比显示的要小得多,但它们并没有“平滑”。

非常感谢您的帮助:)

【问题讨论】:

  • 您使用的是什么图像类?默认的 Java Image 类没有 getScaledCopy() 方法。

标签: java image scaling


【解决方案1】:

在您的情况下,抗锯齿滤镜看起来很糟糕,因为您的图像非常小(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 是一个整数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多