簡體   English   中英

從java中的jpeg轉換為字節

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM