Thumbs.db图像提取Java

时间:2014-09-01 15:35:36

标签: java thumbnails javax.imageio

我正在寻找一种从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无法解析为类型。

1 个答案:

答案 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);