在日常的工作中,需要进行对图片进行裁剪,缩小,打水印的操作。之前都是使用GD库去操作,现在可以尝试使用ImageMagick对其进行操作。
一、安装ImageMagick。我的环境是centos7。yum install ImageMagick
正常安装即可。
二、尝试简单的指令操作。
网上有许多ImageMagick参数的讲解,我这里就不多赘述了。直接上实例。$file = '5.jpg'; // 本地图片 659 * 1000
$local = '100x100.jpg'; // 保存图片
/*
* 例如:
* 缩略图 要求=>100*100
*/
// 结果=>图片尺寸 66*100 图1-1.jpg
$str = " convert +profile '*' $file -quality 90 -resize 100x100 $local ";
// 结果=>图片尺寸 100*152 图1-2.jpg
$str = " convert +profile '*' $file -quality 90 -resize 100x100^ $local ";
// 结果=>图片尺寸 100*100 图1-3.jpg
$str = " convert +profile '*' $file -quality 90 -resize 100x100! $local ";
// 结果=>图片尺寸 66*100 图1-1.jpg
$str = " convert +profile '*' $file -quality 90 -resize 100x100> $local ";
// 结果=>图片尺寸 66*100 图1-1.jpg
$str = " convert +profile '*' $file -quality 90 -resize 100x100
// 结果=>图片尺寸 100*152 图1-2.jpg
$str = " convert +profile '*' $file -quality 90 -resize 100x100^> $local ";
// 结果=>图片尺寸 100*152 图1-2.jpg
$str = " convert +profile '*' $file -quality 90 -resize 100x100^
/*
* 例如:
* 截取图片 要求=>100*100
*/
// 结果=>图片尺寸 100*100 图2-1.jpg 左上角裁剪
$str = " convert +profile '*' $file -quality 90 -resize 100x100^ -gravity northwest -crop 100x100+0+0 $local ";
// 结果=>图片尺寸 100*100 图2-2.jpg 居中裁剪
$str = " convert +profile '*' $file -quality 90 -resize 100x100^ -gravity center -crop 100x100+0+0 $local ";
// 结果=>图片尺寸 100*100 图2-3.jpg 居中裁剪 Y轴下移10像素
$str = " convert +profile '*' $file -quality 90 -resize 100x100^ -gravity center -crop 100x100+0+10 $local ";
/*
* 例如:
* 图片水印 要求=>文字水印 高小帅
*/
$font = '1.TTF';
$water= 'water.png'; // 固定大小的图片
$str = "convert +profile '*' " . $file . " -quality 80 " . $water . " -gravity center -geometry +0+0 -composite -fill grey -font " . $font . " -pointsize 20 -stroke rgba\(0,0,0,0.22\) -strokewidth 1 -gravity SouthEast -draw \"text 28,15 '高小帅'\" " . $file;
var_dump(exec($str));
echo '';