苹果heic格式电脑无法显示问题

该代码段展示了一种利用ImageMagick库将HEIC格式图片转换为JPG格式的方法。首先,它确定文件的后缀是HEIC,然后设置ImageMagick的路径。接着,它创建一个唯一的文件名,将原始HEIC文件保存到本地,使用ConvertCmd运行转换操作,并将转换后的JPG文件上传到OSS服务。如果转换成功,源文件会被删除。
摘要由CSDN通过智能技术生成

使用 ImageMagick 将heic格式,转换成jpg格式

	String originalFilename = file.getOriginalFilename();
    String suffix = originalFilename.substring(originalFilename.lastIndexOf(".") + 1).toLowerCase();
    if ("heic".equals(suffix)){

        String IMAGE_MAGICK_PATH = "D:\\Program Files\\ImageMagick-7.1.0-Q16-HDRI";

        // 日期+uuid作为文件名
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd");
        String fileName = formatter.format(date) + Uuid19Util.uuid();
        String rootFilePath = "C:\\Users\\Administrator\\Desktop\\test_heic\\" + fileName + originalFilename;
        String rootFilePath1 = "C:\\Users\\Administrator\\Desktop\\test_heic\\" + fileName + "1.jpg" ;
        FileUtil.writeBytes(file.getBytes(), rootFilePath);

        ConvertCmd cmd = new ConvertCmd();
        cmd.setSearchPath(IMAGE_MAGICK_PATH);

        IMOperation op = new IMOperation();
        op.addImage(rootFilePath);  //需要转换的图片路径
        op.addImage(rootFilePath1); //转换出来的图片路径
        //启动
        cmd.run(op);

        byte[] bytes = FileUtil.readBytes(rootFilePath1);  // 通过文件的路径读取文件字节流
        InputStream byteArrayInputStream = new ByteArrayInputStream(bytes);

        imgUrl = ossClientService.uploadImage2Oss(byteArrayInputStream, fileUploadPathProperty.getConsultPic());

        if (!imgUrl.isEmpty()){
            File file1 = new File(rootFilePath);
            File file2 = new File(rootFilePath1);
            file1.delete();
            file2.delete();
        }

    }else {
        imgUrl = ossClientService.uploadImage2Oss(file.getInputStream(), fileUploadPathProperty.getConsultPic());
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值