踩坑ImageMagick将ios图片文件HEIC格式转jpg/png等
近期业务部门要求将heic文件转成jpg文件格式,刚开始使用了各种ImageReader都不可以,后来接触ImageMagick后,发现可以中间也踩了一些坑,现在做一下记录踩过的那些坑。
1、首先需要做的准备工作--下载ImageMagick和org.im4java的插件
ImageMagick下载页面:ImageMagick – Download
下载这个版本
org.im4java的pom文件依赖包
<dependency><groupId>org.im4java</groupId><artifactId>im4java</artifactId><version>1.4.0</version> </dependency>
2、安装ImageMagick
安装7.0以后的版本会自动配置环境变量,如果安装过程中遇到有这个选项要打上勾,还有安装目录中间不要有中文和空格,笔者第一次安装的时候安装目录在D:\Program Files (x86) 这样的目录结构上,发现程序会一直报这个异常,说明im4java命令找不到imagemagick的引擎文件。
org.im4java.core.CommandException: java.io.FileNotFoundException: convertat org.im4java.core.ImageCommand.run(ImageCommand.java:219)
3、功能开发
private static final String IMAGE_MAGICK_PATH = "D:/msgic/ImageMagick-7.1.0-Q16-HDRI";private static final String SOURCE_PATH="D:/WeChat/WeChat Files/wxid_8386643866212/FileStorage/File/2022-10/1/1";private static final String TARGET_PATH="D:/WeChat/WeChat Files/wxid_8386643866212/FileStorage/File/2022-10/1/1";public static void main(String[] args) {ProcessStarter.setGlobalSearchPath(IMAGE_MAGICK_PATH);File dir = new File(SOURCE_PATH);File[] dirFiles = dir.listFiles();for(File file:dirFiles){try {IMOperation op = new IMOperation();//op.resize(400,400);op.addImage(file.getPath());op.negate();File outFile=new File(TARGET_PATH+File.separator+getFolderName(file.getName())+".jpg");op.addImage(outFile.getPath());//启动ConvertCmd cmd = new ConvertCmd();cmd.setSearchPath(IMAGE_MAGICK_PATH);cmd.run(op);} catch (IOException e) {e.printStackTrace();} catch (InterruptedException e) {e.printStackTrace();} catch (IM4JavaException e) {e.printStackTrace();}}}public static String getFolderName(String fileName) {if(StringUtils.isEmpty(fileName)){return null;}if(fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0){return fileName.substring(0,fileName.lastIndexOf("."));}return null;}
完美实现功能
踩坑ImageMagick将ios图片文件HEIC格式转jpg/png等相关推荐
- webpack踩坑之路 (2)——图片的路径与打包
webpack踩坑之路 (2)--图片的路径与打包 刚开始用webpack的同学很容易掉进图片打包这个坑里,比如打包出来的图片地址不对或者有的图片并不能打包进我们的目标文件夹里(bundle).下面我 ...
- Java踩坑笔记 —— base64转换为图片后图片显示不全
Java踩坑笔记 -- base64转换为图片后图片显示不全 前言 解决思路 案例代码 结束语 前言 最近在开发项目中,发现base64转换图片时,出现了图片显示不全,例如如下这样 可以明显看到图片部 ...
- iOS系统上HEIC格式的图片如何转换成JPG格式的
iOS系统上HEIC格式的图片如何转换成JPG格式的?想必很多人都有这个烦恼吧.那么怎么进行转换呢? iOS11和以后的系统为了更好地保护苹果用户的隐私,于是就将手机用户拍摄下来的图片,保存为IOS系 ...
- git踩坑——中途才使用.gitignore文件
问题的产生 最近在学习java web项目,顺便使用git和码云gitee来托管代码,一开始没有创建.gitignore文件,导致上传到很多不必要的文件,如.idea和out文件(.idea文件是使用 ...
- Java学习踩坑:阿里云OSS文件上传前端通过路径获取报403错误
错误还原:我在做OSS文件上传头像时,发现头像的图片文件可以上传成功,也可以返回文件的路径.但是前端在拿着后端返回的文件图片路径去访问这个图片时,Response中的错误码为403.找了一下网上的资料 ...
- 一键修改文件夹下图片文件的格式,适用于任何格式
我的文件分布如上,本方法可实现一键修改所有图片文件的格式,例如将现有的png格式修改为jpg格式. 下面上代码: import os from PIL import Image # 图片路径 CONV ...
- Linux系统使用pyinstaller打包pytorch模型疯狂踩坑记(含权重文件和图片等)
首先,先自学了pyqt5编写界面,编写的过程就下次再说吧. 编写完之后,文件夹中包括权重文件和两张图片.pyinstaller打包不能打包图片和权重文件,百度了好几圈终于知道了,/(ㄒoㄒ)/~~ 然 ...
- 《世嘉新人培训教材——游戏开发》踩到的坑2、读取图片文件
问题定位在62页,开始使用DDS图片转化插件前需要安装DirectX才能成功转化.(有好兄弟推荐个下载链接吗?网上的版本不是太老了就是捆绑安装了不想要的程序.) 但是如果想要显示自己在网上下载的图片却 ...
- sideeffects没配置css也还在,webpack4踩坑配置之sideEffects, 打包文件中没有css文件
最开始先来讲一下sideEffects sideEffects sideEffects意为副作用,无副作用类似纯函数的概念(接受参数并返回值,不产生其他影响) 这里的副作用针对模块,如果一个模块单纯的 ...
最新文章
- 两种ICP的改进算法:PLICP与NICP
- python导入pods的时候出现错误:FileNotFoundError: [Errno 2] No such file or directory: ‘D:\\tmp\\sods.log‘
- 致研究者:2018 AI 研究趋势
- 震撼!Science:“第三手指”可增强人体功能
- 纯IPv6环境App适配的坑
- linux c之通过管道实现兄弟间进程通信:
- AspxTreeList获取选中项的值
- silverlight-Canvas中1像素的线变成了2像素
- pyqt 实现控件移除_pyqt5:删除树控件(QTreeWidget)的子节点/根节点
- Q110:PBRT-V3十大基类对应的继承关系
- 明白这些Python 常用包的用法,想不学会Python都难
- 燕麦粉行业调研报告 - 市场现状分析与发展前景预测
- WPF——ViewBox控件
- Redis 客户端使用与监控
- 15款免费WiFi入侵破解安全测试工具
- 什么的发明使研制着能够成功研制微型计算机,1_1_科普知识竞赛试题(小学)
- 阅读真题 | 真题阅读 做题记录 一
- 反病毒工具入门系列-楔子
- 2019软件测试自学必看
- 2019ICPC南昌网络赛总结