gpt4 book ai didi

java - 将图像转换为二进制字符串

转载 作者:行者123 更新时间:2023-12-01 10:57:16 26 4
gpt4 key购买 nike

我试图将图像的每个像素连接在一起以形成二进制字符串。但是,以下代码不会产生任何结果。如果我将 System.out.println 放在//位置,它会打印出一些内容,但我确信这是不正确的。

我认为这与循环有关......

这里有什么问题吗?如何修改我的代码?

public static void main(String[] argv){

BufferedImage img1 = null;

try {
img1 = ImageIO.read(new File("/Users/Sam/Desktop/Image2/00001.png"));
} catch (IOException e) {
e.printStackTrace();
}

int width1 = img1.getWidth();
int height1 = img1.getHeight();

String con = "";

for (int i = 0; i < height1; i++) {
for (int j = 0; j < width1; j++) {
int rgb1 = img1.getRGB(j, i);

con += Integer.toBinaryString(rgb1);

}
//System.out.println(con);

}
System.out.println(con);

}

最佳答案

这是一个我们用来将图像文件序列化为字符串的类,因此我们可以将图像嵌入到 html 文件中。

import org.apache.commons.codec.binary.BinaryCodec;

import java.io.IOException;
import java.io.InputStream;

public class ImageUtil {

public static String getEmbeddedImage(String resourcePath) {
InputStream is = null;
try {
is = ImageUtil.class.getClassLoader().getResourceAsStream(resourcePath);
if (is != null) {
byte buffer[] = new byte[is.available()];
String fileExtension = getImageTypeFromFileName(resourcePath);
String encodedImage = BinaryCodec.toAsciiString(buffer);
encodedImage = "data:image/".concat(fileExtension).concat(encodedImage);
return encodedImage;
}
} catch(IOException e) {
} finally {
if(is != null) {
try { is.close(); } catch(IOException e) {}
}
}
return null;
}

public static String getImageTypeFromFileName(String imagePath) {
String parts[] = imagePath.split("\\.");
return parts[parts.length-1].toLowerCase();
}
}

关于java - 将图像转换为二进制字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33571427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com