Java - 编辑图像

时间:2016-02-13 17:05:33

标签: java image

是否可以在java中编辑图像? 我的意思是在某个点上绘制某种RGB颜色的像素并保存图像。

我正在开发一个游戏,其中的对象是由图像加载的,为了保存地图的当前状态,我需要编辑一些像素并稍后加载。

任何帮助表示赞赏! :)

1 个答案:

答案 0 :(得分:1)

是的。如果您创建BufferedImage实例(存储图像数据的对象),您将能够获取像素并更改它们。方法如下:

public static void main(String[] args) throws Exception {

    BufferedImage originalImage = ImageIO.read(inputFile);
    BufferedImage newImage = orgiginalImage;
    int[] pixels = ((DataBufferInt)newImage.getRaster().getDataBuffer()).getData();

    for(int i = 0; i < pixels.length; i++){
        // Code for changing pixel data;
        pixels[i] = 0xFFFFFFFF // White
        // Syntax for setting pixel color: 0x(HEX COLOR CODE)
        // There is no need to set these pixels to the image; they are allerady linked
        // For instance, if you create a Canvas object in a JFrame, 
        // and used graphics.drawImage(newImage, 0, 0,
        // newImage.getWidth(), newImage.getHeight(), null), it will be up to date
        // Another example is, if you saved newImage to a file, it willallready have
        // the white pixels drawn in.
    }

}