Android开发galleryfinal裁剪png图片问题

        项目中用到别人封装好的相册浏览框架galleryfinal,并带有裁剪功能的,相机,多图选择功能。之前没留意感觉一直都正常。后来发现总有些图片在裁剪处有问题,一开始是以为图片大小的问题,测试后又不是。后来看log以及观察图片格式后是png图片格式都有问题。

  先看下log:

  


上面bug百度过有一解决方法是:

       在budle文件com.android.support:exifinterface:25.1.0升级裁剪功能依赖。

      我发现在我项目行不通。如果你们可以的,就直接修改,就省事了。


     解决方法2:

   思路把png图片转为jpg图片再上传,上传完后再帮用户删除jpg图片。幸好裁剪的一张图片,中间操作时间几乎没什么影响,多了就不好说了。

   转化过程png-->bitmap-->jpg

String ext = FilenameUtils.getExtension(photoPath);
        //单独对png图片处理,转换为jpg格式
        File pngToJpgFile = null;
        String pngToJpgPath = null;
        if(ext.equals("png")){
            Bitmap bitmap = BitmapFactory.decodeFile(photoPath);
            if(bitmap != null){
                Log.d("fileBitmap",bitmap+"");
            }
            String[] strings = photoPath.split("\\.");
            if(strings.length>0 && bitmap != null){

                //存放在本地jpg图片
                pngToJpgPath = strings[0] +"_png"+".jpg";
                pngToJpgFile = new File(pngToJpgPath);
                FileOutputStream fOut = null;
                try {
                    fOut = new FileOutputStream(pngToJpgFile);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                }
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
                try {
                    fOut.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    fOut.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                if(pngToJpgFile.exists()){
                    photoPath = pngToJpgPath;
                    MyApplication.setPngToJpgPath(photoPath);
                }
            }

        }
      以上是png生成jpg图片路径的代码,至于怎么删除图片,就不说了,不懂自行百度。

这种方法有点投机取巧,有必须解决这个bug,也是没办法。如果你们发现有更好的方法记得评论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值