ImageMagick入门教程(免费图片格式转换)

起因是因为我不会图片转换,且发现很多图片转换都要钱,尤其是pdf转jpg,于是我就是找到了这个包,自己处理.当然包时不会导的,所以只能用它提供的命令了.

准备工作

下载imagemagick:ImageMagick – Download

我下载的这个,傻瓜式安装就行,把所有勾勾都勾上,然后要记住安装路径,然后打开系统环境变量,将bin目录加到环境变量里头.

接下来安装ghostscript,我当时解决问题的时候以为是版本出了问题,所有我就在它的历史库里面下载了一个9.5.1的版本,当然你也可以下载最新版,版本不一定会造成问题

下载64位的:Releases · ArtifexSoftware/ghostpdl-downloads · GitHub

当然你也可以在官网下:Ghostscript : Downloads 

下载for windows64位的就行了

安装完成后将安装位置的bin目录放入环境变量.

输入命令检查两个是否成功安装

magick --version//检查imagemagick是否成功安装
gswin64c --version//检查gs是否成功安装

如果两个都没有问题就可以愉快的进行图片转换了

最简单的把pdf转换成jpg

magick -density 300 -quality 100 "E:\develop\a.pdf" -flatten "E:\develop\o.jpg"

-density表示分辨率,quality表示质量指数,前一个字符串表示被转换图片,后一个表示转换后的图片,这个-flatten是关键,因为pdf是由很多个图层组成的,用过极光pdf的都知道,点击图层修改就叫你付费,点击会显示图层,所以-flatten是将所有图层合并为一个单层,否则你就会的到一个很奇怪的图片,比如发票白色底变成黑色底,而且字都消失了.

再就是其它图片转变为pdf

magick -density 300 -quality 100 "E:\develop\q.png" "E:\develop\g.pdf"

上述转换有几个弊端,第一个pdf是多图层的,转换成png,jpg就必须要加-flatten,想要再把jpg,png转成pdf,这时得到的一定是单图层的,这是不可避免的.其它转换软件一定也是这样的,所以如果你想保留图层,就备份一张pdf吧. 

其它图片的相互转换起始非常简单

magick -density 300 -quality 100 "E:\develop\a.格式一" "E:\develop\o.格式二"

因该来说大部分的转换都是支持的,我没仔细研究

接下来讲讲gif与jpg之间的转换

magick -density 300 -quality 100 a.gif -coalesce output_%03d.jpg

-coalesce表示将gif分解成多个jpg,%03d表示output带三位数编号,加不加都无所谓

合成gif

magick -delay 0 -loop 0 E:\develop\en\*.jpg E:\develop\en\output.gif

-delay 0表示能设置的最小延迟,-loop 0表示无限循环,1表示只循环一次,然后*.jpg表示en/下的所有图片.

如果你原本的图片延迟很小的话再次合成可能会变慢. 

旋转90度

magick -density 300 -quality 100 input.jpg -rotate 90 output.jpg

建议不要60,30度这样转,转完你就会发现图片坏掉了.

补充几个命令

magick convert -density 300 input.pdf -background white -alpha remove +adjoin "output_%d.jpg"以图层形式导出
gswin64c -dNOPAUSE -sDEVICE=jpeg -r300 -o "E:\develop\output_%03d.jpg" "E:\develop\shenbao.pdf"//将pdf以图层形式导出
magick convert "E:\develop\an\output_*.jpg" "E:\develop\output.pdf"合并

常用参数

常用参数
-density <value>: 设置输入文件的分辨率(DPI)。
-resize <geometry>: 调整图像大小。
-quality <value>: 设置输出文件的质量。
-colorspace <type>: 设置颜色空间(如 sRGB, CMYK)。
-rotate <degrees>: 旋转图像。
-crop <geometry>: 裁剪图像。
-blur <radius>x<sigma>: 模糊图像。
-sharpen <radius>x<sigma>: 锐化图像。
-contrast: 增加对比度。
-monochrome: 转换为单色图像。
-negate: 反转图像颜色。
-flip: 垂直翻转图像。
-flop: 水平翻转图像。
-border <geometry>: 添加边框。
-gravity <type>: 设置图像的重心点(如 center, north, south)。
-annotate <geometry> <text>: 在图像上添加注释文本。
-font <name>: 设置字体。
-pointsize <value>: 设置字体大小。
-fill <color>: 设置填充颜色。
-stroke <color>: 设置描边颜色。
动画相关参数
-delay <value>: 设置每帧之间的延迟时间,单位是 1/100 秒。
-loop <value>: 设置 GIF 动画的循环次数。
-coalesce: 将多帧图像展开为独立帧。
-deconstruct: 移除与前一帧相同的部分。
-dispose <method>: 设置帧的处理方法。
-page <geometry>: 设置帧的页面大小和位置。
输入/输出相关参数
-read <filename>: 读取输入文件。
-write <filename>: 写入输出文件。
-format <type>: 指定输出文件格式。
-compress <type>: 设置压缩类型(如 JPEG, PNG)。
-strip: 移除图像文件中的所有配置文件和注释。
-interlace <type>: 设置交错类型(如 none, line, plane)。
-depth <value>: 设置图像颜色深度。

示例


magick -delay 20 -loop 0 E:\develop\en\*.jpg E:\develop\en\output.gif
调整图像大小
magick input.jpg -resize 800x600 output.jpg
旋转图像
magick input.jpg -rotate 90 output.jpg
裁剪图像
magick input.jpg -crop 200x200+50+50 output.jpg
添加文本注释
magick input.jpg -font Arial -pointsize 24 -fill black -gravity center -annotate +0+0 "Sample Text" output.jpg
高质量 PDF 转换
magick -density 300 -quality 100 input.pdf output.jpg

补充一下再java中使用这个包的坐标

<dependency><groupId>org.im4java</groupId><artifactId>im4java</artifactId><version>1.4.0</version>
</dependency>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/13783.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文读懂RDMA: Remote Direct Memory Access(远程直接内存访问)

目录 ​编辑 引言 一、RDMA的基本原理 二、RDMA的主要特点 三、RDMA的编程接口 四、RDMA的代码演示 服务器端代码&#xff1a; 客户端代码&#xff1a; 五、总结 引言 RDMA&#xff0c;全称Remote Direct Memory Access&#xff0c;即远程直接内存访问&#xff0c;是…

【ChatGPT】 Microsoft Edge 浏览器扩展使用 GPT

【ChatGPT】添加 Microsoft Edge 浏览器插件免费使用 GPT 文章目录 准备工作添加扩展注意事项 使用 ChatGPT 可以更高效的搜索到想要的内容&#xff0c;有效节约在搜索引擎中排查正确信息的时间。 准备工作 准备一台可上网的电脑电脑上安装有 Windows 自带的 Microsoft Edge …

二.常见算法--贪心算法

&#xff08;1&#xff09;单源点最短路径问题 问题描述&#xff1a; 给定一个图&#xff0c;任取其中一个节点为固定的起点&#xff0c;求从起点到任意节点的最短路径距离。 例如&#xff1a; 思路与关键点&#xff1a; 以下代码中涉及到宏INT_MAX,存在于<limits.h>中…

python+selenium - UI自动框架之封装查找元素

单一的元素定位方法不能满足所有元素的定位&#xff0c;可以根据每个元素的特点来找到合适的方法&#xff0c;可以参考下图的方法&#xff1a; elementFind.py from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_con…

MavLinK协议

由于在公司需要使用这个&#xff0c;我就写一个文章用于入门级别 简单介绍 MAVSDK是PX4开源团队贡献的基于mavlink通信协议的用于无人机应用开发的SDK&#xff0c;其可以部署在Windows、Linux、Android等多种平台&#xff0c;并且支持多种语言如c/c、python、Java等。 在官网…

python从0开始学习(九)

前言 上一篇文章我们介绍了python中的序列类型和元组类型&#xff0c;本篇文章将接着往下将。 1、字典类型 字典类型是根据一个信息查找另一个信息的方式所构成的“键值对”&#xff0c;它表示索引用的键和对应的值构成的成对关系。它是一个可变数据类型&#xff0c;也就是说它…

React中显示数据

SX 会让你把标签放到 JavaScript 中。而大括号会让你 “回到” JavaScript 中&#xff0c;这样你就可以从你的代码中嵌入一些变量并展示给用户。例如&#xff0c;这将显示 user.name&#xff1a; return (<h1>{user.name}</h1> ); 你还可以将 JSX 属性 “转义到 …

【Text2SQL 经典模型】TypeSQL

论文&#xff1a;TypeSQL: Knowledge-Based Type-Aware Neural Text-to-SQL Generation ⭐⭐⭐ Code: TypeSQL | GitHub 一、论文速读 本论文是在 SQLNet 网络上做的改进&#xff0c;其思路也是先预先构建一个 SQL sketch&#xff0c;然后再填充 slots 从而生成 SQL。 论文发…

2024 HGDD 荣耀开发者日·成都站

HGDD 荣耀开发者日成都站 活动时间&#xff1a;2024 年 5 月 27 日 活动地点&#xff1a;成都市双流区 LA CADIERE 蔚蓝湖滨城 期待与大家的见面&#xff01;

【oracle004】oracle内置函数手册总结(已更新)

1.熟悉、梳理、总结下oracle相关知识体系。 2.日常研发过程中使用较少&#xff0c;随着时间的推移&#xff0c;很快就忘得一干二净&#xff0c;所以梳理总结下&#xff0c;以备日常使用参考 3.欢迎批评指正&#xff0c;跪谢一键三连&#xff01; 总结源文件资源下载地址&#x…

Ubuntu 20/22 安装 Jenkins

1. 使用 apt 命令安装 Java Jenkins 作为一个 Java 应用程序&#xff0c;要求 Java 8 及更高版本&#xff0c;检查系统上是否安装了 Java。 sudo apt install -y openjdk-17-jre-headless安装完成后&#xff0c;再次验证 Java 是否已安装 java --version2. 通过官方存储库安…

APH-Archives of Public Health

文章目录 一、期刊简介二、征稿信息三、期刊表现四、投稿须知五、投稿咨询 一、期刊简介 Archives of Public Health是一份范围广泛的公共卫生杂志&#xff0c;致力于出版公共卫生领域所有可靠的科学。该杂志旨在更好地了解人群的健康。该杂志有助于公共卫生知识&#xff0c;加…

2024.5.20 学习记录

1、react 原理&#xff08;jsx的本质、事件机制原理、setState和batch Update、组件渲染更新和diff算法、fiber&#xff09; 2、代码随想录贪心刷题

ArcGIS10.X入门实战视频教程(arcgis入门到精通)

点击学习&#xff1a; ArcGIS10.X入门实战视频教程&#xff08;GIS思维&#xff09;https://edu.csdn.net/course/detail/4046?utm_sourceblog2edu 点击学习&#xff1a; ArcGIS10.X入门实战视频教程&#xff08;GIS思维&#xff09;https://edu.csdn.net/course/detail/404…

银河麒麟操作系统下使用QT连接TiDB数据库开发步骤

目标:实现项目软件+硬件都运行在国产化操作系统平台上。 方法:在虚拟机中安装麒麟系统V10Sp1+Qt5.14.2+MySql8.0+TiDB软件,编译MySql驱动,测试连接TiDB数据库项目。 步骤: 1、使用虚拟机软件VMWare安装银河麒麟操作系统。 2、在银河麒麟系统上安装QT5.14.2软件。 3、…

Web Server项目实战3-Web服务器简介及HTTP协议

Web Server&#xff08;网页服务器&#xff09; 一个 Web Server 就是一个服务器软件&#xff08;程序&#xff09;&#xff0c;或者是运行这个服务器软件的硬件&#xff08;计算机&#xff09;。其主要功能是通过 HTTP 协议与客户端&#xff08;通常是浏览器&#xff08;Brow…

[Cocos Creator 3.5赛车游戏]第5节 为汽车节点挂载自定义脚本

在前面的章节中您已经学会了如何创建一个汽车节点&#xff0c;这一章我们将会学习如何通过挂载自定义节点的方式让小车变得可控制&#xff0c;所以通过这一章的学习后&#xff0c;您将实现一个效果&#xff1a;开始运行后&#xff0c;小车每隔一帧就延y轴向上移动一段距离。在这…

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-自动外呼输入分机号(比如隐私号)(mod_cti基于FreeSWITCH) 比如有些人的号码是这样的就需要用上自动外呼输入分机号了 号码1&#xff1a;182XXXX8111-1234 号码2&#xff1a;182XXXX8222 如果号码是这样的就根据以下步骤配置 注意使用这个需要&#xff1a;…

Redis学习篇2:Redis在IEDA中的应用

本文继上文开始讲述了Redis在IDEA中如何应用以及集成进入spring开发环境&#xff0c;以及如何使用Redis客户端。上一个文章&#xff1a;Redis学习篇1&#xff1a;初识Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客户端 二、SpringDat…

树莓派 Raspberry Pi M.2 HAT+ 现已发售!原理图流出!

​Raspberry Pi M.2 HAT 使您能够将 M.2 M-key 外设&#xff08;如 NVMe 驱动器和人工智能加速器&#xff09;连接到 Raspberry Pi 5。它能够提供与这些外设之间的快数据传输&#xff08;高达 500 MB/s&#xff09;&#xff0c;现在就可以从树莓派的授权经销商网络购买&#xf…