在拆分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”后结果正常。