[英]Convert to bytes from jpeg in java
我想在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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.