graphicsmagick和imagemagick对比

  1. 背景

graphicsmagick与imagemagick测试对比,判断对于公司的图片上传,用graphicsmagick处理性能是否更优

常用指令参数说明

(a) 图片基础处理

序号

指令

描述

处理

1

-resize '400x300'

指定缩放大小宽x高;

生成缩略图的宽最多为width,高最多为height,进行等比缩放(限定长边)。

2

-resize '400x300^'

指定缩放大小宽x高^;

生成缩略图的宽最少为width,高最少为height,进行等比缩放(限定短边)。

3

-resize '400x300!'

指定缩放大小宽x高!;

生成缩略图的宽固定为width,高固定为height(比例可能和原图不一致,图片出现变形)。

4

-resize '400x300>'

指定缩放大小宽x高>

如果原图大于指定的width x height,则生成width x height的新图。

5

-resize '400x300^>' -gravity Center -crop 400x300+0+0 +repage

固定宽x高,居中裁剪

生成缩略图的宽最少为width,高最少为height,进行等比缩放,居中裁剪

6

-resize '400x300>' -background white -gravity center -extent 400x300 +repage

固定宽x高,居中补白

生成缩略图的宽最多为width,高最多为height,进行等比缩放,居中补白

(b) 图片水印处理

序号

指令

描述

结果

1

图片水印{waterMark}

1. 指定水印参数:waterMark

默认在图片右下角打水印图片

2

文字水印{textWaterMark}

2.指定文字内容:textWaterMark

默认在图片右下角打上白底文字

(c) 图片的其它处理(图片质量)

序号

指令

描述

结果

1

-quality 90

 指定图片处理的质量参数;

以指定的质量参数对原图进行处理生成新图,该质量参数为绝对质量参数。

2

缺省

缺省质量参数,生成新图与原图的质量参数保持一致。

(d) 图像组合处理

序号

指令

描述

结果

1

-quality 90 -resize '400x300^>' -gravity Center -crop 400x300+0+0 +repage

1. 指定图片处理的质量参数;

2. 指定其它图片处理参数;

原图以90的质量压缩,并按400x300等比缩放,居中裁剪成400x300的新图

2

 -quality 86 -resize '800>' {waterMark}

1. 指定图片处理的质量参数;

2. 指定其它图片处理参数;

3. 指定图片打水印参数

原图以86的质量压缩,若宽大于800等比缩放,并在右下角打上水印

无论imagemagick 还是graphicsmagick软件,原图使用上述指令参数都能得到正确的图片。正常两个软件压出的图片肉眼看不出差别。

可用identify  -format "%m:%f %G %Q %b \n" ./* 指令执行,得出的参数,两个软件处理的图片参数差异不大,图片质量是jpg才有

identify  -format "%m:%f %G %Q %b \n" ./54497875*

JPEG:54497875_1516157105938_100x75.jpg 100x75 90 4.97KB

JPEG:54497875_1516157105938_1024.jpg 1024x768 86 169KB

WEBP:54497875_1516157105938_1024.webp 1024x768 92 82.1KB

JPEG:54497875_1516157105938_120x90.jpg 120x90 93 7.82KB

JPEG:54497875_1516157105938_180x135.jpg 180x135 93 15.2KB

%m 图片格式

%f 图片名称

%G 图片宽x高

%Q 图片质量

%b 图片大小

指令内容如下,建议采用正常尺寸(1024x768)原图测试

序号

指令

imagemagick

graphicsmagick

1

图片缩放

/usr/local/sbin/bin/bin/convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>' [out]{file}_400x300.{ext}

/usr/local/bin/gm convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>'  [out]{file}_400x300.{ext}

2

缩放+裁剪

/usr/local/sbin/bin/bin/convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>' -gravity Center -crop 400x300+0+0 +repage [out]{file}_400x300.{ext}

/usr/local/bin/gm convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>' -gravity Center -crop 400x300+0+0 +repage [out]{file}_400x300.{ext}

3

缩放+水印

/usr/local/sbin/bin/bin/convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>' {waterMark} [out]{file}_400x300.{ext}

/usr/local/bin/gm convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>'  {waterMark} [out]{file}_400x300.{ext}

4

缩放+裁剪+水印

/usr/local/sbin/bin/bin/convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>' -gravity Center -crop 400x300+0+0 +repage {waterMark} [out]{file}_400x300.{ext}

/usr/local/bin/gm convert -auto-orient +profile '*' [src]{file}.{ext} -quality 90 -resize '400x300>' -gravity Center -crop 400x300+0+0 +repage {waterMark} [out]{file}_400x300.{ext}

测试一

graphicsmagick与imagemagick转换图大小对比

说明:

转换图压缩比是指转换图大小跟原图大小的比值,同一张图片,压缩比值越小代表转换处理后的图片体积越小

结论:

体积上有差异。graphicsmagick转换的图片和imagemagick 转换的图片K数不等。但graphicsmagick与imagemagick转换图压缩比的差值平均不到1%。压缩质量高于90,graphicsmagick转换的图片体积稍大。

测试二

串行处理,graphicsmagick与imagemagick 转图性能对比

说明:

响应时间比是指graphicsmagick的图片转换用时imagemagick 图片转换用时的比值,比值低于100%,说明graphicsmagick的转图用时比imagemagick 的少,意味着graphicsmagick的图片处理效率高

图片

来源

图片大小

图片尺寸

001.jpg

win7系统自带Koala.jpg图片

763k

1024x768

002.jpg

车型库编辑提供的实拍图片

673k

1600x1200

003.jpg

车型库编辑提供的数码照片

12.8M

7952x5304

结论:

转图速度上有差异。在串行处理下graphicsmagick转图的速度比imagemagick的高。效率优化值因具体转图指令不同,graphicsmagick效率优化平均大概在20%。

其中graphicsmagick的转图性能在下述场景中比imagemagick更优,达40%

1、适用于生成小于300x300的小尺寸缩略图场景。

2、适用于原图与输出图片尺寸差距较大的场景,特别是数码相机的高清图片转图。

另:002.jpg是公司车型库实际传图,在120x90以下尺寸的转图输出下有比较好的优化,达50%,其他较大尺寸转图优化不算大,只有10%。

测试三:

graphicsmagick与imagemagick转图性能在不同用户并发下的差异

说明:

响应时间比是指graphicsmagick的图片转换用时imagemagick 图片转换用时的比值,比值低于100%,说明graphicsmagick的转图用时比imagemagick 的少,意味着graphicsmagick的图片处理效率高。

结论:

第一:打水印操作,串行执行 composite指令graphicsmagick转图的效率比imagemagick 的高,优化在20%,单张图片打水印graphicsmagick的处理用时随着并发数的递增变化不大,性能相对稳定,因此,随着并发数递增,graphicsmagick的转图性能比imagemagick 更优,高达30%。

第二:缩放、裁剪操作,串行执行 convert指令graphicsmagick转图的效率比imagemagick 的高,优化在20%;但随着并发数递增,graphicsmagick转图性能优势越发不明显,而且原图与输出图片尺寸差距越小,会出现imagemagick 的转图效率比graphicsmagick高;

第三:以graphicsmagickimagemagick车型库图片实际转图测试,单个用户图片处理graphicsmagick转图效率比imagemagick 优化20%左右。但公司图片上传用时,至少包括网络传图用时、磁盘读写用时、图片处理用时,测试单用户请求上传接口,graphicsmagick性能优化才5%。多用户请求并发,graphicsmagick优化不大。

​​​​​​​测试结论

          结合公司车型库实际转图,单用户请求接口传图,用graphicsmagick处理图片,测试优化才5%;多用户请求并发,用graphicsmagick处理并没有得到优化。所以,对于公司的图片上传,用graphicsmagick处理优化不大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值