繁体   English   中英

如何在Java中将图像转换为字节数组?(不使用缓冲图像)

[英]how to convert image to byte array in java?(With out using buffered image)

嗨,有人可以向我解释一下如何在java中将图像数据转换为字节数组,我想这样。在这里​​我不需要使用缓冲图像。

File file = new File("D:/img.jpg");
        FileInputStream imageInFile = new FileInputStream(file);
        byte imageData[] = new byte[(int) file.length()];
        imageInFile.read(imageData);

您也可以使用FileInputStream转换图像数据。

File file = new File("D:\\img.jpg");

FileInputStream fis = new FileInputStream(file);
 //Now try to create FileInputStream which obtains input bytes from a file. 
 //FileInputStream is meant for reading streams of raw bytes,in this case its image data. 
 //For reading streams of characters, consider using FileReader.

        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        byte[] buf = new byte[1024];
        try {
            for (int readNum; (readNum = fis.read(buf)) != -1;) {
                //Now Write to this byte array output stream
                bos.write(buf, 0, readNum); 
                System.out.println("read " + readNum + " bytes,");
            }
        } catch (IOException ex) {
            Logger.getLogger(ConvertImage.class.getName()).log(Level.SEVERE, null, ex);
        }

        byte[] bytes = bos.toByteArray();

或者您可以使用:

Image image = Toolkit.getDefaultToolkit().getImage("D:/img.jpg");
byte[] imageBytes = getImageBytes(image);


private byte[] getImageBytes(Image image) throws IOException {
    try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
        ImageIO.write(image, "bmp", baos);
        baos.flush();
        return baos.toByteArray();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM