centos7系统项目中ImageMagick的安装及使用,测试案例将PDF转成图片

2023-06-01 00:00:00 安装 案例 转成

ImageMagick 是一个免费的创建、编辑、合成图片的软件,ImageMagick 是免费软件遵守 GPL 许可协议

依赖:

imagick扩展
ImageMagick-devel
ImageMagick-perl


CentOS7安装:

在 CentOS 中可以直接使用 Yum 进行安装,安装上面的3个依赖。

yum install -y ImageMagick ImageMagick-devel ImageMagick-perl

接着使用pecl安装扩展。

找到 PHP 安装目录下的 pecl,

例如 PHP 安装在 /usr/local/php74 目录中,则 pecl 一般在 /usr/local/php74/bin 目标中,

执行命令:

/usr/local/php74/bin/pecl install imagick

即可使用 pecl 自动下载并安装 ImageMagick,


最后在php.ini中添加:

extension=imagick.so

即可启用扩展。


检查一下扩展有没有安装成功,可以执行一下命令

php -m|grep imagick

有imagick字样,说明扩展安装成功



PDF转图片代码示例:

// 实例化imagick对象
$im = new imagick();

//用于设置图像的分辨率,
$im->setResolution(150, 150);
//设置图像的压缩质量,默认值为 0;传入的参数值应为 1-100,对于 JPG 格式图片,值越小,图像体积越小,同时清晰度也较低
//png保持默认就好了
$im->setCompressionQuality(100);

//直接加载 PDF 文件的二进制内容,也可以使用 readImage($filename) 函数读取保存好的 PDF 文件
$im->readImageBlob($fileContent);

//设置要生成的图像的格式,如 jpg,png 等
$im->setImageFormat('jpg');


//设置图像背景色为白色
$im->setImageBackgroundColor('white');
//去掉图像的 alpha 通道
$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
//将所有图像合并为一层
$im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);


//获取转换生成图像的二进制数据,输出到客户端供下载;
//如果需要保存到文件,可以使用 writeImage($filename) 函数。
header("Content-type: image/jpeg");
echo $im->getImageBlob();



相关文章