我正在寻找一种从java中的thumbs.db文件中提取图像的方法。我尝试过使用另一个user here提供的方法。我遇到问题的代码部分是
JPEGImageDecoder decoder = JPEGCodec.createJPEGDecoder(is);
JPEGDecodeParam param = JPEGCodec.getDefaultJPEGEncodeParam(4,JPEGDecodeParam.COLOR_ID_RGBA);
decoder.setJPEGDecodeParam(param);
BufferedImage originalBufferedImage = decoder.decodeAsBufferedImage();
我收到错误JPEGImageDecoder无法解析为类型。
答案 0 :(得分:1)
不像其他示例中那样使用POI,但您可以使用我的免费开源Thumbs.db plugin for 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);