图片处理命令行工具ImageMagick介绍

本文介绍了ImageMagick,一个强大的命令行图片处理工具,支持多种图片格式转换、编辑和合成。主要内容包括ImageMagick的安装、基本命令使用,以及图片合并、缩略图生成、添加水印、绘制验证码、图像克隆和拼合等实际案例。ImageMagick适用于Linux、Windows、Mac OS等多个平台,提供了convert、identify、mogrify等实用命令,能够满足各种图片处理需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做百度OCR图片文字识别时,因为免费版OCR接口调用次数有限,就想把多张图片合并成一张进行文字识别。这就需要在代码中进行图片合并操作,在查找图片批量合并方案时,看到了linux的convert命令,可以将多张图片合并,且使用特别方便,纪录一下convert是如何使用的。

convert命令属于ImageMagick工具包,具有图片创建、编辑,转换图像格式,以及调整图像大小、模糊、裁切、除去杂点、抖动 、绘图、翻转、合并、重新采样等功能。

要想使用covert命令,首先要安装ImageMagick包。

ImageMagick包介绍

ImageMagick是一款创建、编辑、合成,转换图像的命令行工具,支持格式超过 200 种,包括常见的 PNG, JPEG, GIF, HEIC, TIFF, DPX, EXR, WebP, Postscript, PDF, SVG 等。功能包括调整大小,翻转,镜像,旋转,扭曲,修剪和变换图像,调整图像颜色,应用各种特殊效果,或绘制文本,线条,多边形,椭圆和贝塞尔曲线等。对于图片的处理,ImageMagick基本可以实现任何常用操作。

官网:https://imagemagick.org/
中文镜像站: http://www.imagemagick.com.cn/index.html

安装


ImageMagick支持Linux, Windows, Mac OS X, iOS, Android OS 等平台。
安装参考文档地址:https://www.imagemagick.org/script/download.php


我以mac为例,安装方式如下:

brew install imagemagick


安装ImageMagick工具包后,即可使用其工具命令。

基本命令

ImageMagick 包括一组命令行工具来操作图片,安装好 ImageMagick 后,终端就可以使用如下命令了。


magick: 创建、编辑图像,转换图像格式,以及调整图像大小、模糊、裁切、除去杂点、抖动 ( dither )、绘图、 翻转、合并、重新采样等。


convert: 等同于 magick 命令。


identify: 输出一个或多个图像文件的格式和特征信息,如分辨率、大小、尺寸、色彩空间等。


mogrify: 与 magick 功能一样,不过不需要指定输出文件,自动覆盖原始图像文件。


composite: 将一个图片或多个图片组合成新图片。


montage: 组合多个独立的图像来创建合成图像。每个图像都可以用边框,透明度等特性进行装饰。


compare: 从数学和视觉角度比较源图像与重建图像之间的差异。


display: 在任何 X server 上显示一个图像或图像序列。


animate: 在任何 X server 上显示图像序列。


import: 保存 X server 上的任何可见窗口并把它作为图像文件输出。可以捕捉单个窗口,整个屏幕或屏幕的任意 矩形部分。


conjure: 解释并执行 MSL ( Magick Scripting Language ) 写的脚本。


stream: 一个轻量级工具,用于将图像或部分图像的一个或多个像素组件流式传输到存储设备。在处理大图像或 原始像素组件时很有用。


各个命令具体介绍,参考地址: https://imagemagick.org/script/command-line-tools.php

命令使用格式


基本命令的使用,遵循 Unix 风格的标准格式:

command [options] input_image output_image

比如我们将一张宽高 300x300 的图片 goods.png 转换成 200x200 的goods.jpg,可以这样用

convert -resize 200x200 goods.png goods.jpg

-resize 定义图片尺寸,ImageMagick 所有的选项参数都在这个【命令行选项手册】。

图片合并实例


接下来介绍我在OCR文字识别中将多张图片合并一张方法,代码合并使用convert命令,如我有图片1.jpg、2.jpg、3.jpg,我想将这三张图片合并成1张并命名为a.jpg,命令如下:

convert -append 1.jpg 2.jpg 3.jpg a.jpg

Python代码:

import os

imgDir = ''

pathDir = sorted(filter(is_img, os.listdir(imgDir)))

 # 通过拼接convert命令,进行图片合并
tmp = 0
shell <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值