Java使用Imageio拆分gif图片时保存的图片变为黑色

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值