gpt4 book ai didi

java - 连接和读取图像字节和字符串字节

转载 作者:行者123 更新时间:2023-11-29 04:05:23 25 4
gpt4 key购买 nike

所以基本上我想连接图像字节和字符串字节,并在转换回字符串格式时能够读取字符串字节。而且我无法读取字节的字符串部分。我已经在将字符串连接到字符串时进行了尝试,并且效果很好,而且我认为它也可以用于图像和字符串,因为它是以字节为单位的。

   BufferedImage img = ImageIO.read(new File("src/Client/sample img.jpg"));
ImageIO.write(img , "jpg", baos);
baos.flush();
String information = "\"Image Information\"";
byte[] buffer = baos.toByteArray();
byte[] info = information.getBytes();
byte[] concat = new byte[buffer.length + info.length];
System.arraycopy(buffer, 0, concat, 0, buffer.length);
System.arraycopy(info, 0, concat, buffer.length, info.length);

如果字节是一个可读的字符串,我是这样读的

StringBuilder ret = new StringBuilder(); 
int i = 0;
while (concat[i] != 0)
{
if((char) concat[i] == '"'){
ret.append((char) concat[i]);
i++;
while ((char) concat[i] != '"')
{
ret.append((char) concat[i]);
i++;
}
break;
}
i++;
}

所以是的,可以这样做吗?如果没有,有什么办法可以连接

最佳答案

我认为您可以在数组开头添加 1 个 int(4 个字节)。此 int 将存储图像数组的长度。您可以从字节数组中读取前 4 个字节,识别图像字节数组大小(例如 N),然后读取 N 个图像字节,然后是字符串字节。

我认为结果应该是这样的:

byte[] buffer = baos.toByteArray();
byte[] info = information.getBytes();
byte[] length = intToBytes(buffer.length);
byte[] concat = new byte[length.length + buffer.length + info.length];
System.arraycopy(length, 0, concat, 0, buffer.length);
System.arraycopy(buffer, 0, concat, length.length, buffer.length);
System.arraycopy(info, 0, concat, buffer.length + length.length, info.length);

关于java - 连接和读取图像字节和字符串字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59191363/

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