RGB像素无法从图像渲染

时间:2013-11-20 22:22:27

标签: java image bufferedimage javax.imageio

我正在尝试将图像的像素作为RGB返回到屏幕上。我正在加载图像:

package graphics;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;

public class Texture{
    public static Render floor = loadBitmap("/images/image2.png");
    public static Render loadBitmap(String fileName){
        try{
            BufferedImage image = ImageIO.read(Texture.class.getResource(fileName)); 
            System.out.println("images loaded");
            int width = image.getWidth(); 
            int height = image.getHeight(); 
            Render result = new Render(width, height); 
            image.getRGB(0, 0, width, height, result.pixel, 0, width); 
            return result; 
        }catch(Exception e){
            System.out.println("Fatal error: imaging libraries missing or corrupt");
            throw new RuntimeException(e);
        }
    }
}

并使用以下内容在单独的类中渲染像素:

pixel[pixelPosition] = Texture.floor.pixel[((xPix & 7)) + ((yPix & 7 )) * 8];

其中pixelint[],其参数为[xPix + yPix *width]。但是,每当我启动程序时,图像都会加载(我知道这是因为没有返回任何错误,我设置了一个打印命令来告诉我它是否已加载)但像素没有渲染。我想也许我只需要更改pixel因为它没有正确读取图像,但后来我发现pixel[pixelPosition] = ( ((xPix & 15) << xDisplacement) | ((yPix & 15)) << yDisplacement) & 0xffffff;工作得很好。出了什么问题?

0 个答案:

没有答案