Centos 下编译PHP图片扩展库 ImageMagick、MagickWandForPHP、imagick
安装环境说明:
操作系统:Centos 6.5 -64bit
开始编译 ImageMagick
wget ftp://mirror.checkdomain.de/imagemagick/ImageMagick-6.9.9-33.tar.gz tar -xzvf ImageMagick-6.9.9-33.tar.gz && cd ImageMagick-6.9.9-33 ./configure --prefix=/usr/local/imagemagick make && make install
开始编译 MagickWandForPHP
tar -zxvf MagickWandForPHP-1.0.9-2.tar.gz cd MagickWandForPHP-1.0.9 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config --enable-shared --with-magickwand=/usr/local make make install
配置PHP支持 MagickWandForPHP扩展
vim /usr/local/php/etc/php.ini # 修改以下内容 extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/" # 增加扩展到php extension = magickwand.so
重新启动php-fpm
/etc/init.d/php-fpm restart
开始编译 imagick
tar -zxvf imagick-3.1.2.tgz cd imagick-3.1.2 /usr/local/php/bin/phpize ./configure --with-php-config=/usr/local/php/bin/php-config make make install
配置PHP支持 imagick扩展
vim /usr/local/php/etc/php.ini # 修改以下内容 extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/" # 增加扩展到php extension = imagick.so
重新启动php-fpm
/etc/init.d/php-fpm restart
测试劳动结果( 查看phpinfo模块是否安装成功 )
看到这两个模块,恭喜安装成功
PHP操作图片实例
/**
* 等比例缩放图片
*/
function zoomImage800($imagepath, $saveImagPath)
{
if (!is_file($imagepath)) throw new Exception('不存在的图像文件');
$resource = NewMagickWand();
MagickReadImage($resource, $imagepath); // 读取图片到handle
$width = MagickGetImageWidth($resource); // 得到宽
$height = MagickGetImageHeight($resource); // 得到高
$dpi = MagickGetImageResolution($resource); // 得到分辩率数组
MagickRemoveImageProfiles($resource); // 去掉图片ICC信息
MagickSharpenImage($resource,4,2); // 图片锐化处理
// MagickSetImageColorspace($resource,MW_RGBColorspace); //设定图片模式为rgb
$format = '.'.pathinfo($imagepath, PATHINFO_EXTENSION);//得到文件格式
//$format=strtolower(end(explode('.', $imagepath)));//得到文件格式
//生成650x650图
if ($width>500 ){ // 如果图片宽小于650就不改变的尺寸
$newW=500;
$newH=$height/$width*500;
MagickResizeImage($resource, $newW, $newH, MW_LanczosFilter , 1.0); //比MagickScaleImage 质量稍高
// MagickScaleImage($resource, $newW, $newH);
}else{
$newW=$width;
$newH=$height;
}
//写入图片
MagickWriteImage($resource, $saveImagPath);
ClearMagickWand($resource);
DestroyMagickWand($resource);
}
# 使用实例
zoomImage800('images/01.jpg', 'images/02_thumb.jpg');

