我正在寻找一种方法从java中的thumbs.db文件中提取图像。我尝试使用另一个这里的用户提供的方法。他的代码中我遇到麻烦的部分是
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(is);
JPEGDecodeParam param = JPEGCodec.getDefaultJPEGEncodeParam(4,JPEGDecodeParam.COLOR_ID_RGBA);
decoder.setJPEGDecodeParam(param);
BufferedImage originalBufferedImage = decoder.decodeAsBufferedImage();
我得到的错误JPEGImageDecoder不能解析为一个类型。
发布于 2014-09-01 18:33:14
不像在另一个例子中那样使用POI,但是您可以使用我的免费开源用于Thumbs.db的ImageIO插件来读取缩略图。
在设置依赖项时,您可以使用它如下所示:
ImageInputStream input = ImageIO.createImageInput(new File("/path/thumbs.db"));
ImageReader reader = ImageIO.getImageReaders(input).next();
reader.setInput(input);
for (int i = 0; i < reader.getNumImages(); i++) {
BufferedImage thumb = reader.getImage(i, null);
// do something with it...
}
reader.dispose(); // These last two, preferably in a finally block or "try-with-resource"
input.close();
如果您想更详细地了解图像是如何解码的,可以查看ThumbsDBImageReader.java的源代码。
PS:如果您比较喜欢使用POI,我认为您可以将上面的代码替换为这样的内容(对于root
中的每个条目):
BufferedImage originalBufferedImage = ImageIO.read(is);
https://stackoverflow.com/questions/25609143
复制相似问题