-3

试图存储到图像。bt 是字节数组

InputStream is = new ByteArrayInputStream(bt);
Image img = ImageIO.read(is);
ImageIO.write(img,"jpg",new File("C:\\home_loan.jpg") );

, 请帮我,

错误 - : 找不到符号

符号:方法 write(java.awt.Image,java.lang.String,java.io.File)

位置:类 javax.imageio.ImageIO

ImageIO.write(img,"jpg",new File("C:\home_loan.jpg") );

   ^  
4

3 回答 3

0

首先,您需要知道映射是一个 int 到一个字节还是一个 int 到多个字节(以及多少个)。然后,如果是后者,您需要知道是大端还是小端。

对于图像,您还需要了解图像格式是什么(JPG 实际上有几个变体)。

于 2013-01-03T21:27:17.600 回答
0

使用BufferedImage。那是一个由内存支持的图像,有两种setRGB方法。

以此来定制您的数据;否则您需要转换数据结构,处理一个 BufferedImage。

于 2013-01-03T21:29:46.020 回答
0

您可以使用以下方法-

/**
 * @param path full path of image
 * @return image file for supplied path
 */
private BufferedImage getImage(String path) {
    BufferedImage image = null;
    File file = new File(path);
    try {
        image = ImageIO.read(file);
    } catch(Exception e) {
        e.printStackTrace();
    }
    return image;
}

/**
 * @param userSpaceImage 
 * @return byte array of supplied image
 */
private byte[] getByteData(BufferedImage userSpaceImage) {
    WritableRaster raster = userSpaceImage.getRaster();
    DataBufferByte buffer = (DataBufferByte) raster.getDataBuffer();
    return buffer.getData();
}

/**
 * @param image image-file to save
 * @param file to save image to
 * @param extension of image file
 * @return full path of saved image
 */
private String saveImage(BufferedImage image, File file, String extension) {
    try {
        ImageIO.write(image, extension, file);
    } catch(Exception e) {
        e.printStackTrace();
    }
    return file.getAbsolutePath();
}
于 2017-02-10T05:49:29.687 回答