Java取得HEIC图片识别并装换成jpg图片
iosheic 图片
Java客户端
JMagick为ImageMagick提供了一个面向对象的Java接口。 http://www.jmagick.org/ (PS:目前官网打不开2022-07-28 09:59:03)
Im4java是ImageMagick命令行的纯java接口。http://im4java.sourceforge.net/
im4java
im4java 是ImageMagick的第二个Java接口实现,它不是 JMagick的替代品,而是作为一个补充。JMagick是ImageMagick C-API之上的一个轻量级的JNI层,相反,im4java只生成ImageMagick命令的命令行,并将生成的行传递给选中的IM命令(使用java.lang.ProcessBuilder.start()方法)
————————————————
im4java的jar包可以在maven库中找到。
1
2
3
4
5
|
< dependency > < groupId >org.im4java</ groupId > < artifactId >im4java</ artifactId > < version >1.4.0</ version > </ dependency > |
将ImageMagick或者GraphicsMagick安装好后,再配好环境变量。
样例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import org.im4java.core.ConvertCmd; import org.im4java.core.IMOperation; public class Test { public static void main(String[] args) { try { zoomImage( 1000 , 800 , "F:/u02/origin/20141215/loginbigbg.jpg" , "F:/u02/origin/20141215/loginbigbg_new.jpg" ); } catch (Exception e) { e.printStackTrace(); } } public static void zoomImage(Integer width, Integer height, String srcPath, String newPath) throws Exception { IMOperation op = new IMOperation(); op.addImage(srcPath); if (width == null ){ //根据高度缩放图片 op.resize( null , height); } else if (height == null ){ //根据宽度缩放图片 op.resize(width, null ); } else { op.resize(width, height); } op.addImage(newPath); //这里不加参数或者参数为false是使用ImageMagick,true是使用GraphicsMagick ConvertCmd convert = new ConvertCmd(); // convert.setSearchPath("g:/tool/graphicsmagick-1.3.20-q16"); convert.setSearchPath( "G:/tool/ImageMagick-6.9.0-Q16" ); convert.run(op); } } |

其中setSearchPath在Windows环境下是需要设置的。
1
|
ConvertCmd convert = new ConvertCmd(); |
这一句,如果只安装了ImageMagick,但是定义时写成了new ConvertCmd(true)是,会报找不到“gm”的错。
|
org.im4java.core.CommandException: java.io.FileNotFoundException: gm at org.im4java.core.ImageCommand.run(ImageCommand.java: 219 ) at com.trs.rk.test.Test.zoomImage(Test.java: 31 ) at com.trs.rk.test.Test.main(Test.java: 10 ) |
同理,如果只装了GraphicsMagick,但是new ConvertCmd(false)或者无参数,会报找不到convert的错。
org.im4java.core.CommandException: java.io.FileNotFoundException: convert
at org.im4java.core.ImageCommand.run(ImageCommand.java:
219
)
at com.trs.rk.test.Test.zoomImage(Test.java:
31
)
at com.trs.rk.test.Test.main(Test.java:
10
)
安装imageMagic时候要勾上convert那一行,确保安装目录下有convert.exe
不积跬步,无以至千里;不积小流,无以成江海。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人