PHP把svg图片转为常规png、jpg、jpeg图片

2022-10-11 21:51:00 134 0
魁首哥

需求:

在获取接口数据时候,返回的图片地址中有类似SVG的图片,导致APP端无法使用,需要转换为常规的图片

SVG图片内容类似如下:

 






  

此内容即使直接保存为指定的图片,也无法使用,需要转换

PHP把svg图片转为常规png、jpg、jpeg图片

环境与工具:

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
上一篇:高级PHP应用程序漏洞审核技术 下一篇:JavaScript数组中slice、concat方法真的是深拷贝吗?

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码