图片工具GraphicsMagick的安装配置与基本使用

2019-02-12 16:36:23

本文使用GraphicsMagick的版本为1.3.18 (Released March 9, 2013)。

1.简介

GraphicsMagick是一个短小精悍的的图片处理工具和库集合。对于Java开发者来说,常用的图片处理工具有3个,JDK自带的图片处理库,ImageMagick,GraphicsMagick。JDK自带的图片处理库,虽稳定简单,性能却比较差;ImageMagick是目前最流行的图片处理工具,它的功能非常丰富;GraphicsMagick的功能略逊于ImageMagick,但是它的效率更强悍,但大多数情况下,GM的功能已经足够使用了。

功能特色:

(1)使用OpenMP进行多线程图片处理,增强了通过扩展CPU提高处理能力。 

(2)支持大图片的处理,并且已经做过GB级别的图像处理实验。

(3)能够动态的生成图片,特别适用于互联网的应用。

支持格式:超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。

支持平台:Linux、Mac、Windows。

使用方式:GaphicsMagick支持命令行的模式,同时也支持C、C++、Perl、PHP、Tcl、 Ruby等的调用。

2.安装与配置

下载地址:http://www.graphicsmagick.org/download.html

关于版本中的Q8,Q16的说明:

Q8表示: 8-bits per pixel quantum
Q16表示:16-bits per pixel quantum

现在数码相机照的相片,每一种颜色就是8位深,所以建议选Q8。
而使用16-bit per pixel quantums在处理图片时比8-bit慢15%至50%,并须要更多的内存。

(1)Windows下,下载安装包后直接安装即可。

(2)Linux下,与普通的程序安装无异,即解压后到根目录执行以下命令。


./configuremakemake install
PS:如果遇到无法执行的情况,使用root权限进行操作。


3.常用操作

以下说明的是使用命令行的方式。

(1)查看图片信息


gm identify input.jpg
(2)生成缩略图


gm convert input.jpg -thumbnail 100x100 output.jpg

(3)添加水印


gm composite -geometry 100x100% -gravity SouthEast logo.png input.jpg output.jpg

4.更多参考

im4java官方网站:http://im4java.sourceforge.net/index.html         

im4java的api:http://im4java.sourceforge.net/api/         

graphicsmagick的官方网站:http://www.graphicsmagick.org/index.html         

graphicsmagick的命令行参数解析:http://www.graphicsmagick.org/utilities.html




  • 2020-12-18 17:15:29

    coTurn stun服务器搭建,禁用turn

    https://github.com/coturn/coturn 在这里git clone 下来然后编译安装,一切默认即可。编译后,也可以不用安装。在编译目录下bin文件夹下有turnserver turnutils_stunclient turnutils_uclient 这三个等一下会用到的软件。

  • 2020-12-18 17:26:25

    coturn配置文件详细解释

    Coturn 是webrtc,p2p视频通话必不少的,主要包含2个主要功能stun服务, turn服务 Coturn 的githup地址为 https://github.com/coturn/coturn/

  • 2020-12-21 06:26:16

    为UIView添加点击事件

    最近经常碰到要将UIImageView和UILabel看成整体的情况,我于是就将他俩用UIView包起来,那么怎么给一个UIView添加点击事件,可以这么实现:

  • 2020-12-21 09:00:20

    Window.matchMedia() 方法详解

    matchMedia() 返回一个新的 MediaQueryList 对象,表示指定的媒体查询字符串解析后的结果。 matchMedia() 方法的值可以是任何一个 CSS @media 规则 的特性, 如 min-height, min-width, orientation 等。 MediaQueryList 对象有以下两个属性:

  • 2020-12-21 09:42:42

    iframe.contentWindow 操作iframe

    注:iframe.contentWindow这里,返回的是iframe的window对象,所以后面可以接着调用document方法,再接着调用getElementByTagName。那么就可以对iframe里面的元素进行操作了。

  • 2020-12-21 14:00:19

    iframe + postMessage跨域通信

    在实际项目开发中可能会碰到在 a.com 页面中嵌套 b.com 页面,这时第一反应是使用 iframe,但是产品又提出在 a.com 中操作,b.com 中进行显示,或者相反。

  • 2020-12-22 12:02:41

    ios开发优秀的开源框架,demo集合

    期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交issues即可)。请广大网友只按照目录结构(即使目录结构有问题)添加三方库,并提交pull request。目录问题大家提出issues后楼主会及时更改的。