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

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

高老师1年前 (2024-01-11)PHP274
(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 curl 获取cookie

php curl 获取cookie

    为了实现注册机才写的教程,为了批量注册一个网站,注册带有验证码,幸好是文本验证码,但是有session验证,于是POST必须携带cookie。代码如下。<?php class  AutoCurl{    ...

 php调用.net的dll文件,php调用.net dll

php调用.net的dll文件,php调用.net dll

本篇文章不是讲解如何用.net开发自己的dll然后PHP通过com调用。主要记录PHP官方支持的DOTNET 基本语法如下:$obj = new DOTNET("assembly", "classname")a...

php解决浮点数精度问题

php解决浮点数精度问题

首先看看以下代码:代码1:<?php $a=0.1; $b=0.7; if($a+$b==0.8) { echo "1"; } else{ echo "2"; } ?>代码2:<?php   &n...

php迭代器学习

php迭代器学习

php官方已经提供了Iterator(迭代器)接口,通过网上资料的学习,目前看适合超大集合或者数组提取使用。学习一个函数的实现对比内存占用差距.使用迭代器和普通循环实现range()函数。(1).普通循环实现range()函数。function newrange($low, $h...

编写php com组件,php调用.net dll,php源码保护

编写php com组件,php调用.net dll,php源码保护

开发com组件可以用c++,vc++,net,我比较熟悉net,演示用dnet(1).创建项目:启动vs2017,新建项目,选择Visual C# ->Windows桌面->类库通用windows(2). 修改Com项目:点击 项目->项目属性,再点击应用程序->程序集信息,...

php trait的使用

php trait的使用

PHP不像net支持多继承,自身只支持单继承,为了解决这个问题,php出了Trait这个特性,减少单继承语言的限制。并且能让代码复用率更高。说白了就是一个对象的属性和方法扩展工具一样。例如:trait exts {     public f...