Java 图像 - "1 to 1"图像缩放

标签 java image scaling

我想为我的测试游戏提供像素风格的外观,但是当我将它们缩放到我希望它们显示的尺寸(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/

相关文章:

java - onClickListener 是否在其内部的所有代码都在 Android 中运行后才更新 UI?

java - 为什么当返回值不同时我的排序方法返回 0?

css - 如何设置背景图片显示在img标签内容之前?

Asp.net 保证响应时间

JAVA EE 7 First cup教程,无法安装Glassfish 4更新中心

java - 评估表达式程序在接受用户输入时遇到的问题

javascript - 更快地加载大图像

java - 在java中更改bufferedImage像素

java - 谷歌应用引擎: CRUDing Instances

sql - 数据库可扩展性 : Which is more important, 表的大小或查询的数量?