像素图像数据,可以调整大小吗?

问题描述

我确定这个问题已经被问过很多次了,所以我很抱歉。我将查看以前的答案,直到有人对此做出答复。或者,如果我可以被重定向解决方案。

当我使用下面的方法时,我会根据 BufferedImage 的数据获得一个像素信息数组。但是,在创建像素数据后,无法更改宽度和高度......一旦您运行游戏,就是这样。基本上,一个 16x32 的精灵不能被放大到 32x64 ......或者一些奇怪的东西,比如 456x12。这样做的更好方法是什么?

这是我的代码

import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;

public class GameImage {

private int w,h;
private int[]p;

public GameImage(String path) {
    BufferedImage image = null;

    try {
        image = ImageIO.read(GameImage.class.getResourceAsstream(path));
    }catch(IOException e) {
        e.printstacktrace();
    }

    w = image.getWidth();
    h = image.getHeight();
    p = image.getRGB(0,w,h,null,w);

    image.flush();
}

public int getW() {
    return w;
}

public void setW(int w) {
    this.w = w;
}

public int getH() {
    return h;
}

public void setH(int h) {
    this.h = h;
}

public int[] getP() {
    return p;
}

public void setP(int[] p) {
    this.p = p;
}

}

下图显示了我在“常规尺寸”显示器上的游戏屏幕。屏幕上的精灵是 16x32...它不能被放大。蓝色背景是一个更大的 BufferedImage,整个游戏都在它上面渲染。我使用 RenderEngine 对象,并调用诸如 r.drawImage() 之类的方法来绘制...图像,哈哈。我相信你能猜到……这些图像被绘制到由更多像素数据组成的 BufferedImage 中。

(不确定这是否是游戏画面的最佳方法……但目前看来可行。)

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)