需求:
在获取接口数据时候,返回的图片地址中有类似SVG的图片,导致APP端无法使用,需要转换为常规的图片
SVG图片内容类似如下:
此内容即使直接保存为指定的图片,也无法使用,需要转换
环境与工具:
CentonOS 7 X64 + PHP 7.2
ImageMagick-7.0.9-27.zip
imagick-3.4.4.tgz
其中【ImageMagick-7.0.9-27】为一套独立的图片处理软件,PHP可以使用【imagick-3.4.4】扩展来调用它的API接口,来实现图片的转化;
其支持的的图片格式很多,具体查看官方文档
下载(略)
源码安装:
【 ImageMagick -7.0.9-27】
Tips:在安装PHP扩展时,需要其安装路径信息[–prefix]的值
# unzip ImageMagick-7.0.9-27.zip
# cd ImageMagick-7.0.9-27
# ./configure \
--prefix=/server/ImageMagick \
--with-modules \
--enable-share \
--enable-static \
--with-perl
# make && make install
【imagick-3.4.4】
# tar -zxvf imagick-3.4.4.tgz
# cd imagick-3.4.4
# phpize
# ./configure \
--with-imagick=/server/ImageMagick
# make && make install
# php --ini
# 添加配置文件的扩展
示例:
$im = new Imagick();
$im->readImageBlob(file_get_contents("1.svg"));
// 设置图片格式,注意与[setFormat]方法区分
$im->setImageFormat("png24");
$srcImage = $im->getImageGeometry(); //获取源图片宽和高
$im->resizeImage($srcImage['width'], $srcImage['height'], imagick::FILTER_LANCZOS, 1, false);
// 保存文件
$im->writeImage('2.png');
// 销毁对象
$im->clear();
海报
0 条评论
134
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~