在拆分GIF图片时,遇到最后保存的图片变为黑色问题。代码如下:
public static void splitGif(String filename,String path){
try{
GifDecoder decoder = new GifDecoder();
decoder.read(filename);
int n = decoder.getFrameCount();
System.out.println("n : "+n);
String[] subPic = new String[n];
for ( int i =0; i<n;i++){
BufferedImage frame = decoder.getFrame(i);
subPic[i] = path+String.valueOf(i)+".jpg";
FileOutputStream out = new FileOutputStream(subPic[i]);
ImageIO.write(frame,"JPEG",out);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(frame);
out.flush();
out.close();
}
}catch (Exception e){
System.out.println("split gif fail");
e.printStackTrace();
}
}
保存到本地的图片:
在尝试了几次之后,发现一个问题时,formatName不能为"JPEG"或者“JPG”,否则就会出现结果为黑色。将formatName修改为“PNG”后结果正常。