Java 如何使用字节数组转换为二进制图像(0位,1位)?

Java 如何使用字节数组转换为二进制图像(0位,1位)?,java,image,binary,Java,Image,Binary,我想把字节数组转换成二进制图像 但我不知道怎么做。 数组值只有0和1 0=黑色,1=白色 byte [] arr = new byte[32*32]; for(int i=0;i<arr.length;i++){ arr[i]= i%2==0?(byte)0:(byte)1 } byte[]arr=新字节[32*32]; 对于(inti=0;i,这取决于您将如何处理该二进制图像。 如果您只在计算时需要它,那么您的数组可能会更好地为您完成这项工作, 虽然二维数组可能更方便使用 如果要构

我想把字节数组转换成二进制图像 但我不知道怎么做。 数组值只有0和1

0=黑色,1=白色

byte [] arr = new byte[32*32];
for(int i=0;i<arr.length;i++){
  arr[i]= i%2==0?(byte)0:(byte)1
}
byte[]arr=新字节[32*32];

对于(inti=0;i,这取决于您将如何处理该二进制图像。 如果您只在计算时需要它,那么您的数组可能会更好地为您完成这项工作, 虽然二维数组可能更方便使用

如果要构造BuffereImage对象,可以将其指定为 每像素类型1位(见下文),并使用setRGB()方法填充其内容。 这样的图像可以保存到文件中,或者显示在GUI中,或者使用getRGB()方法访问

下面是一个工作示例(GenerateChecker.java):

导入java.awt.image.buffereImage;
导入javax.imageio.imageio;
导入java.io.IOException;
导入java.io.File;
公共类生成器
{
私有静态最终整数宽度=32;
专用静态最终整数高度=32;
公共静态void main(字符串args[])引发IOException
{
BuffereImage im=新的BuffereImage(32,32,BuffereImage.TYPE_BYTE_BINARY);

int-white=(255对不起,我不明白这一行(在下面)你能解释一下吗,谢谢“int-white=(255)这只是为了构建完全的白色-其中红色=255(位23-16),绿色=255(位15-8),蓝色=255(位7-0)。java.awt.BufferedImage.TYPE_BYTE_BINARY([link])的描述表示在1位图像的情况下,颜色模型只允许两种颜色-0,0,0和255255。
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.IOException;
import java.io.File;

public class GenerateChecker
{

    private static final int width = 32;
    private static final int height = 32;

    public static void main(String args[]) throws IOException
    {
            BufferedImage im = new BufferedImage(32, 32, BufferedImage.TYPE_BYTE_BINARY);

            int white = (255 << 16) | (255 << 8) | 255;
            int black = 0;

            for (int y = 0; y < height; y++)
                    for (int x = 0; x < width; x++)
                            im.setRGB(x, y, (((x + y)&1) == 0) ? black : white);

            File outputfile = new File("checker.png");
            ImageIO.write(im, "png", outputfile);
    }
}