Java GifDecode类分解gif图片

最近使用AnimatedGifEncoder类处理gif图片,后来需要使用它来分解gif图片,不知道怎么操作,在网上到处找代码。搞笑的是文章千篇一律,各种复制粘贴,注释都不改的,也不看代码好不好用,结果当然不好用,分解出来的图片出现变色、透明背景不透明等问题,想了想还是自己写一篇吧,代码量少的可怜,纯粹是看不惯那些无脑复制。

<dependency>
     <groupId>com.madgaggroupId>
     <artifactId>animated-gif-libartifactId>
     <version>1.4version>
dependency>
   /**
     * @param originalSource 目标gif
     * @param newPath 分解后的文件夹路径
     */
    private static synchronized void gifSeparate(String originalSource ,String newPath) {
        try{
            GifDecoder gd = new GifDecoder();
            int status = gd.read(new FileInputStream(new File(originalSource)));
            if (status != GifDecoder.STATUS_OK) {
                return;
            }
            for (int i = 0; i < gd.getFrameCount(); i++) {
                BufferedImage frame = gd.getFrame(i);
                ImageIO.write(frame,"png",new File(newPath+i+".png"));
            }
        }catch(Exception e){
            e.printStackTrace();
        }
    }

你可能感兴趣的:(java)