Imagemagick resize

一些其它参考:

http://blog.sina.com.cn/s/blog_ba532aea0101bty5.html

 

将一个200x304大小的图像缩小为100x152(长宽各缩短一半)。
convert page200.png -resize 100x152 page100.png
上面的 100x152,指定了目标文件的长和宽。
 你也可以只指定目标文件宽度,这样它的高度会等比例放大:
convert page200.png -resize 100 page100.png
或者只指定高度:
convert page200.png -resize x152 page100.png
以上三句命令,其结果都是一样的。

 

一些命令:

 

1,获取图片信息

$identify image.png 
image.png PNG 559x559 559x559+0+0 8-bit sRGB 467KB 0.000u 0:00.008 
如果只需要获取宽高:

$identify -format "%wx%h" image.png 
2,放大,缩小 -resize

$convert image.png -resize 200x200 resize.png 
也可以按照比例(缩小一半):

$convert image.png -resize 50% resize.png 
还可以多次缩放(先缩小一半,再放大一倍,效果就是变模糊了):

$convert image.png -resize 50%  -resize 200%  resize.png 
3,放大,缩小 -sample

与resize的区别在于-sample只进行了采样,没有进行插值,所以用来生成缩略图最合适

$convert image.png -sample 50% sample.png 
这个处理的效果就是马赛克:

$convert image.png -sample 10% -sample 1000% sample.png 
4,裁剪 -crop

从(50,50)位置开始,裁剪一个100X100大小的图片:

$convert image.png -crop 100x100+50+50 crop.png 
如果不指定位置,则按照这个大小分隔出小图片,这个命令生成crop-0.png,crop-1.png,crop-2.png……:

$convert image.png -crop 100x100 crop.png 
可以指定裁剪位置的相对位置 -gravity:

$convert image.png -gravity northeast -crop 100x100+0+0 crop.png 
-gravity即指定坐标原点,有northwest:左上角,north:上边中间,northeast:右上角,east:右边中间……
5,旋转 -rotate

$convert image.png -rotate 45 rotate.png 
默认的背景为白色,我们可以指定背景色:

$convert image.png -backround black -rotate 45 rotate.png 
$convert image.png -background #000000 -rotate 45 rotate.png 
还可以指定为透明背景色:

$convert image.png -background rgba(0,0,0,0) -rotate 45 rotate.png 
6,合并

合并指的是将一张图片覆盖到一个背景图片上:

$convert image.png -compose over overlay.png -composite newimage.png 
-compose指定覆盖操作的类型,其中over为安全覆盖,另外还有xor、in、out、atop等等
覆盖的位置可以通过-gravity指定:

$convert image.png -gravity southeast -compose over overlay.png -composite newimage.png 
这是将图片覆盖到底图的右下角。
7,更改图片的alpha通道

分两步:

$convert image.png -define png:format=png32  image32.png 
$convert image32.png -channel alpha -fx "0.5" imagealpha.png 
这个命令首先将image.png的格式改为png32(确保有alpha通道),然后更改alpha通道置为0.5,也就是半透明,值的范围为0到1.0
可以使用将一张透明图片覆盖到原图上的方式做水印图片:

$convert image.png -gravity center -compose over overlay.png -composite newimage.png 
$convert image.png -gravity southeast -compose over overlay.png -composite newimage.png 
8,拼接

横向拼接(+append),下对齐(-gravity south):

$convert image1.png image2.png image3.png -gravity south +append result.png 
纵向拼接(-append),右对齐(-gravity east):

$convert image1.png image2.png image3.png -gravity east -append result.png 
9,格式转换

$convert image.png image.jpg 
$convert image.png -define png:format=png32 newimage.png 
10,文字注释

$convert image.png -draw "text 0,20 'some text'" newimage.png 
从文件text.txt中读取文字,指定颜色,字体,大小,位置:

$convert source.jpg -font xxx.ttf -fill red -pointsize 48 -annotate +50+50 @text.txt result.jpg 
11,去掉边框
$convert image.png -trim -fuzz 10% newimage.png

12,GIF 需要两步
用imagemagick生成gif的缩略图不能一步到位,需要两步操作

第一步 : convert sinykk.gif -coalesce sinykk_coalesce.gif

第二步 : convert  sinykk_coalesce.gif -resize "300X300>"  sinykk_end.gif

其中: "300X300>" 这个是当GIF图片没有300的长宽将不进行长宽操作

此条目发表在technologys分类目录。将固定链接加入收藏夹。