强大的图像处理库ImageMagick:命令行上的PhotoShop 您所在的位置:网站首页 r语言pointsize 强大的图像处理库ImageMagick:命令行上的PhotoShop

强大的图像处理库ImageMagick:命令行上的PhotoShop

2023-04-08 04:03| 来源: 网络整理| 查看: 265

ImageMagick是一套功能强大、稳定而且开源的工具集和开发包,可以用来读、写和处理超过89种基本格式的图片文件。 ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。支持大多数的操作系统。

支持的程序语言: Perl, C, C++, Python, PHP, Ruby, Java; ImageMagick接口(PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick)。

支持的图片格式,ImageMagick支持至少90种图片格式  A, ART, AVI, AVS, B, BIE, BMP, BMP2, BMP3, C, CACHE, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CUR, CUT, DCM, DCX, DNG, DOT, DPS, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, FAX, FITS, FPX, FRACTAL, G, G3, GIF, GIF87, GRADIENT, GRAY, HDF, HISTOGRAM, HTM, HTML, ICB, ICO, ICON, JBG, JBIG, JNG, JP2, JPC, JPEG, JPG, JPX, K, LABEL, M, M2V, MAP, MAT, MATTE, MIFF, MNG, MONO, MPC, MPEG, MPG, MSL, MTV, MVG, NULL, O, , P7, PAL, PALM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PFA, PFB, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, TIF, TIFF, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMFWIN32, WMZ, WPG, X, XBM, XC, XCF, XPM, XV, XWD, Y, YCbCr, YCbCrA, YUV

功能与特性: 格式转换:从一种格式转换成图像到另一个(例如 PNG 转 JPEG) 变换:缩放,旋转,裁剪,翻转或修剪图像 透明度:使图像的部分变为透明 附加:添加形状或一帧到图像 装饰:添加边框或帧图像 特效:模糊,锐化,阈值,或色彩图像动画:创建一个从GIF动画图像组序列 文本及评论:插入描述或艺术图像中的文字 图像识别:描述的格式和图像性能 综合:重叠了一个又一个的图像 蒙太奇:并列图像画布上的图像缩略图 电影支持:读写图像的共同使用的数字电影工作方式 图像计算器:应用数学表达式的图像或图像通道 离散傅立叶变换:实现正向和反向的DFT。 高动态范围图像:准确地表现了从最明亮的阳光直射到最深最黑暗的阴影找到真正的幕后广泛的强度水平 加密或解密图片:转换成不懂乱码,然后再返回普通图像 虚拟像素支持:方便以外区域的图像像素 大图像支持:读,过程,或写mebi和吉比像素的图像尺寸 执行:ImageMagick的是线程安全的,利用内部算法OpenMP的功能及快速的双核和四核处理器技术提供窗口优势 异构分布式处理:某些算法可以在跨越的CPU,GPU,以及其他处理器组成的异构平台音乐会执行速度提高。

2.下载 与 安装

1)下载

可从ImageMagick官方网站下载最新的ImageMagick源码进行编译 ,也可直接下载相应的编译好的二进制包直接安装。

官方网址:

2)编译

windows下可直接用VC编译,linux下直接configure make install即可。

windows下编译分为两步:

a. 首先windows下需要编译ImageMagick自带的configure文件, configure是一个ImageMagick提供的配置工具,位于源代码中的\VisualMagick\configure目录。configure编译后会生成configure.exe可执行文件。然后运行configure.exe会出现配置对话框,如下所示:

下一步

根据需要选择工程的类型,多线程动态库,多线程静态库等。

选择图像每个通道的深度。一般情况下ARGB,每个通道8用位表示。而ImageMagick默认使用16位表示一个通道。

由于我们通常处理的都是8位的图像,这里需要调整为Q8。否则在处理图像时可能会有问题。

b. configure之后,会在源代码的根目录生成vc的工程文件,直接打开build就可以了。build的结果在源代码根目录下的bin目录。包括两部分:lib库和exe程序。即可以通过lib方式在程序中调用,也可以在命令行中调用。

3)注意

再特别说明一下,一定要注意位深度更改为8,否则编译出来的程序默认为每个颜色16位,在处理图片时会出错。

3.使用

ImageMagick功能十分强大,不过也有些复杂。具体可以参考他的文档。位于源码根目录下的www目录。也可以直接点这里:

由于本人未能详细研究,下面引用中的内容进行简要说明:

2012年7月10日

说明:此文章有网友提供

见官方demo:http://www.imagemagick.org/Usage/thumbnails/#rounded%5Fborder

运行此demo必须条件:

1、ImageMagick 安装路径 D:/Program Files/ImageMagick/convert.exe

2、将 ex 文件夹放在 C盘根目录下。

最终转换命令

"convert c:/card1.jpg -alpha set -gravity center -extent 1200x750 " +" c:/a_big.png -compose DstIn -composite " +" c:/b_big.png -compose Over -composite " +" c:/111.png "

其中 a_big.png b_big.png 均是背景图 顺序不能互换 111.png 是生成的圆角图片

思路:

这里假设用户上传的最大长宽比例不超过1200*750,

我们可以先做 1200*750 2张背景图,frist_1200_750.png 和 sec_1200_750.png。

由于用户上传图片大小不同,也就是 width,height不同

1、得到用户上传图片的width、height

2、判断目录下是否存在此长宽比的背景图,如果不存在,再创建此长宽比的背景图,Radius.java createThumbnail 方法。

3、根据转换命令,进行转换。记住,2张背景图的顺序不能反, 读者可试试互换结果。 Radius.java createRadiusImg 方法。

4、测试,如果 width > height 生成的圆角图长宽比正常。测试图片 card1.jpg

如果 width < height,就不正常了。 测试图片 4d58cae79da70.jpg 如果 width > height, 长宽比均比较大,生成图片 和 原图片对比,发现生成图片模糊,测试图片 200711108226923_2.jpg

Demo代码下载地址:

分类: 标签: , , 2011年9月27日

图片反色处理通过convert的negate参数来实现,同时可以针对制定的区域进行反色。

整个图片进行反色出来 convert -negate src.jpg negate.jpg

效果图如下:

部分区域反色 convert -region 100x100+0+0 -negate src.jpg negate-part-1.jpgconvert -gravity center -region 100x100+0+0 -negate src.jpg negate-part-2.jpg

注意:regoin参数需要在negate前,否则无法对指定的区域进行反色处理。另外关于gravity参数详细信息请参考:

分类: 标签: , , , 2011年8月31日

imagemagick的convert命令通过crop参数,可以把一幅大图片分成若干块大小一样的图片,同时也可以在大图上截取一块图片来。命令格式为

convert 原始图片 -crop widthxheight+x+y 目标图片

其中widthxheight是目标图片的尺寸,+x+y是原始图片的坐标点,这两组值至少要出现一组,也可以同时存在。另外该命令也可使用gravity来重新定义坐标系统。关于更多gravity的信息,请参考:。下面介绍几种常用的命令。

把原始图片分割成多张小图 convert src.jpg -crop 100x100 dest.jpg假设src.jpg的大小是300x200,执行命令后将得到名为dest-0.jpg、dest-1.jpg...dest-5.jpg的6张大小为100x100的小图片。注意如果尺寸不是目标图片的整数倍,那么右边缘和下边缘的一部分图片就用实际尺寸 在原始图片上剪裁一张指定尺寸的小图 convert src.jpg -crop 100x80+50+30 dest.jpg在原始图片的上距离上部30像素左部50为起点的位置,分别向左向下截取一块大小为100x80的图片。如果x相对于坐标,宽度不够100,那就取实际值。convert src.jpg -gravity center -crop 100x80+0+0 dest.jpg在原始图上截取中心部分一块100x80的图片convert src.jpg -gravity southeast -crop 100x80+10+5 dest.jpg在原始图上截取右下角距离下边缘10个像素,右边缘5个像素一块100x80的图片 分类: 标签: , , , , , 2011年8月30日

利用ImageMagicK的convert命令,能很方便的实现图片的放大缩小,可以进行等比例缩放,也能缩放到指定的固定大小。缩放的参数resize,由它来指定缩放后图片的宽高,比如“200×100”。

等比缩放 例如把图片a.jpg缩放到200×100的尺寸,可以用命令: convert -resize 200×100 src.jpg dest.jpg

注意:虽然明确指定了图片大小为200×100,但dest.jpg的不一定就是200×100,因为是等比缩放的,dest.jpg大小取决原始图片比例。假设src.jpg的大小是500×200,那么缩放后dest.jpg的真实大小为200×80,再比如src.jpg的大小是300×200,缩放后的尺寸为150×100。原则是缩放后的尺寸最少有一个是符合宽或高,且另外一个不能大于指定的参数中对应的宽或高。另外可以通过只指定宽或高的方式来进行缩放。例如:

convert -resize 200 src.jpg dest.jpg得到图片宽为200,高根据原始图片比例计算而来convert -resize x100 src.jpg dest.jpg得到的图片高位100,宽根据原始图片比例计算而来 固定宽高缩放。即不考虑原是图宽高的比例,把图片缩放到指定大小。例如命令: convert -resize 200x100! src.jpg dest.jpg

说明:区别是宽高后面多了一个叹号,此时不管原图片比例如何,缩放后的图片大小都是200×100,这样就可能导致图片变形。注意:在linux环境对参数需要用单引号引起来,而windows下又不能使用单引号。

有条件缩放。可以通过>或


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有