gpt4 book ai didi

java - 在java中将jpeg转换为字节

转载 作者:太空宇宙 更新时间:2023-11-04 12:22:55 25 4
gpt4 key购买 nike

我想在 Java 中将 JPEG 转换为字节数组。下面的代码使我的请求错误。

BufferedImage img=Image.read("C:\blabla");
WritableRaster raster=img.getRaster();
DataBufferByte buffer=(DataBufferByte)raster.getDataBuffer();
byte[] jpegbytes=buffer.getData();

当我执行时,它给出了错误的字节数。 JPEG 在磁盘上的大小为 845.941 字节。但是,它以 jpegbytes 形式返回大小 2 359 296 字节。如何获得正确的字节值?我认为,BufferedImage 类出错了。

最佳答案

通过将 FileInputStream 的内容写入 ByteArrayOutputStream 并调用 toByteArray(),您可以将任何文件写入字节数组。

public byte[] fileToBytes(String filename) throws IOException {
final byte[] buffer = new byte[256];
try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
try (InputStream in = new FileInputStream(new File(filename))) {
int bytesRead;
while ((bytesRead = in.read(buffer)) > 0)
out.write(buffer, 0, bytesRead);
}
return out.toByteArray();
}
}

关于java - 在java中将jpeg转换为字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38644948/

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