当前位置:首页 > PHP > 正文内容

使用php将svg图片转换为png图片

高老师2年前 (2024-01-11)PHP333
(1)、安装composer包
composer require meyfa/php-sv
(2)、包装下方法
/**
 * SVG图片转PNG图片
 * @param $svgFilePath 
 * @param $pngFilePath
 * @param $width
 * @param $height
 * @return void
 * @throws BusinessException
 */
function svgToPng($svgFilePath, $pngFilePath, $width = 200, $height = 200)
{
    // 检查文件
    if (!is_file($svgFilePath)) {
        throw new BusinessException('文件地址不存在');
    }

    // 加载文件
    $image = SVG::fromFile($svgFilePath);

    // 设置图片宽高
    $rasterImage = $image->toRasterImage($width, $height);

    // 保存文件
    imagepng($rasterImage, $pngFilePath);
(3)、调用测试
svgToPng('./1.svg','777.png')

(4)、质量最高的方式是下面的方式

// 创建 Imagick 实例
$imagick = new Imagick();
// 读取 SVG 文件
$imagick->readImage('input.svg');
// 设置图像分辨率(DPI)以提高输出质量
$imagick->setResolution(300, 300);
// 将图像格式转换为 PNG
$imagick->setImageFormat('png');
// 保存为 PNG 文件
$imagick->writeImage('output.png');
// 释放资源
$imagick->clear();
$imagick->destroy();

安装扩展只需要将php dll放在ext 其他的dll扔在php目录就行





扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/699.html

分享给朋友:

“使用php将svg图片转换为png图片” 的相关文章

PHP数组重新排序

PHP数组重新排序

通常我们使用unset()删除数组的元素,数据的顺序并没有重置,使用array_merge()方法即可解决<?php $shoplist= array('a','b','c','d','e','...

PHP计算两个字符串的相似度

PHP计算两个字符串的相似度

<?php echo similar_text("Hello World","Hello Shanghai"); ?> 2.计算两个字符串的相似度,并返回百分比 <?php similar_text("...

php 开启错误提示,php 关闭错误提示

php 开启错误提示,php 关闭错误提示

开启错误提示代码:ini_set("display_errors", "On"); error_reporting(E_ALL | E_STRICT);关闭错误提示代码:error_reporting(E_ALL ^&n...

php 数组转换xml,php 数组转成xml,php数组转xml 函数

php 数组转换xml,php 数组转成xml,php数组转xml 函数

源码:特别适用于微信支付中通知微信支付网关function array2xml($arr, $level = 1) { $s = $level == 1 ? "<xml&g...

PHP二维数组排序,PHP多维数组排序, array_multisort()

PHP二维数组排序,PHP多维数组排序, array_multisort()

使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...

PHP中的ArrayAccess用法详解

PHP中的ArrayAccess用法详解

php arrayaccess 官方的说法是让你能以数组的形式访问对象,对于这种php内置接口一直不太明白有什么用,坚持多看文章,终于理解,特来分享,思路不同,更易于理解。(1).创建一个学生类,并且实现arrayaccess 接口。<?php class  studen...