我的代码在这里正确编译,但我遇到的问题是我的BufferedImages的ArrayList总是空的。老实说,我不了解有关ImageIO或类似内容的任何知识!
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import javax.imageio.IIOException;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import net.sf.javavp8decoder.imageio.WebPImageReader;
import net.sf.javavp8decoder.imageio.WebPImageReaderSpi;
class MyProj{
public static void main(String[] args) throws IOException{
System.out.println("Main");
ArrayList<BufferedImage> collectedImg=getFrames();
}
static ArrayList<BufferedImage> getFrames() throws IIOException{
File MyWebM= new File("/users/case3/mcclusm4/workspace/LineTech/src/goal.webm");
ArrayList<BufferedImage> frames = new ArrayList<BufferedImage>();
try{
ImageReader ir = new WebPImageReader(new WebPImageReaderSpi());
ir.setInput(ImageIO.createImageInputStream(MyWebM));
for(int i = 0; i < ir.getNumImages(true); i++)
frames.add(ir.read(i));
}catch(IOException e){}
return frames;
}
}
答案 0 :(得分:0)
首先不要抓住Exception
并且什么都不做:
catch (Exception e) {}
现在当捕获到异常时,它会在没有任何信息的情况下无声地失败。
更改catch以打印stacktrace:e.printStackTrace()
并发布。
答案 1 :(得分:0)
免责声明:我自己从未测试过相关代码。但...
通过查看net.sf.javavp8decoder.imageio.WebPImageReader
的源代码,它无法解码WebM
个文件。它是only supports single frame WebP
个文件。
如果您停止吞咽异常并忽略它,正如@robocoder所建议的那样,您应该获得IIOException
with the message "Bad WEBP signature!"
。