Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 缓冲区图像类型\字节\二进制更改像素颜色_Java_Image - Fatal编程技术网

Java 缓冲区图像类型\字节\二进制更改像素颜色

Java 缓冲区图像类型\字节\二进制更改像素颜色,java,image,Java,Image,我一直在努力寻找和回答这个问题。我正在尝试使用类型为_BYTE _BINARY的imageType更改大缓冲区图像中像素的颜色。默认情况下,当我创建图像时,它将创建一个黑色图像,这是很好的,但我似乎无法将像素颜色更改为白色 这是我想做的基本想法 BufferedImage bi = new BufferedImage(dim[0], dim[1], BufferedImage.TYPE_BYTE_BINARY); bi.setRBG(x, y, 255) 这对我来说似乎很奇怪,因为类型为字节的

我一直在努力寻找和回答这个问题。我正在尝试使用类型为_BYTE _BINARY的imageType更改大缓冲区图像中像素的颜色。默认情况下,当我创建图像时,它将创建一个黑色图像,这是很好的,但我似乎无法将像素颜色更改为白色

这是我想做的基本想法

BufferedImage bi = new BufferedImage(dim[0], dim[1], BufferedImage.TYPE_BYTE_BINARY);
bi.setRBG(x, y, 255)
这对我来说似乎很奇怪,因为类型为字节的二值图像不会有RGB颜色,所以我知道这不是正确的解决方案

我的另一个想法是使用createGraphics()方法创建多个buffereImage类型_BYTE_BINARY,然后将所有这些缓冲图像合并到一个大的buffereImage中,但在使用类型_BYTE_BINARY imageType时,我找不到任何相关信息

在阅读本文时,我遇到一些人说需要在BuffereImage上使用createGraphics()方法,但我不想这样做,因为这样会占用太多内存

我专门为这个方法createPackedRaster()找到了这个链接(第二个)。这似乎是在正确的轨道上

这些是编辑类型\字节\二进制图像的唯一选项吗?或者有没有其他类似于python处理1位深度图像的方式

在python中,这就是需要完成的全部工作

im = Image.new("1", (imageDim, imageDim), "white")
picture = im.load()
picture[x, y] = 0 # 0 or 1 to change color black or white

感谢所有帮助或指导。

所有工作。我能在图像上得到一个白色像素

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.awt.Color;
import java.io.File;

public class MakeImage
{
    public static void main(String[] args)
    { 
        BufferedImage im = new BufferedImage(100, 100, BufferedImage.TYPE_BYTE_BINARY);
        im.setRGB(10, 10, Color.WHITE.getRGB());

        try
        {
            ImageIO.write(im, "png", new File("image.png"));
        }
        catch (IOException e)
        {
            System.out.println("Some exception occured " + e);
        }
    }
}

哇,这是一个简单的解决方案,我已经挣扎了这么久。谢谢马吕斯!对我来说,这是一个非常简单的解决方案,表明它在Java中也可以很短:)。不客气!