如何使用 Inkscape 将 SVG 字符串转换为 jpg

2023-11-27

在花了两天时间尝试使用 ImageMagick 从 SVG 字符串光栅化 jpeg 后,我终于放弃了。

虽然我设法使实际转换工作正常,但在渲染图像时,Imagemagick 似乎无法正确转换变换/旋转功能,导致输出与原始 SVG 不同。

经过进一步研究,这似乎是一个已知问题,并且“Inkscape”是在 PHP 中将 SVG 转换为 jpeg/png 的最佳方法。

问题是我的 SVG 数据通过 JSON 发送到我的 PHP 脚本。如何将 blob 或字符串输入 Inkscape 命令行以进行转换?

非常感谢您的任何建议。


如果您有 SVG 字符串,并且通过 AJAX 将其从浏览器发送到服务器,则需要将其写入临时文件,以便可以从 Inkscape 命令行引用它。您无法使用 Inkscape 命令行渲染为 JPEG,但您可以轻松渲染为 PNG,如果您确实需要不同的格式,当然可以随后使用 ImageMagick 进行转换。

你需要类似的东西:

/path/to/inkscape \
    --without-gui \
    --export-png=/path/to/output.png \
    /tmp/file/input.svg

如果您接受用户的全部/部分 SVG 输入,请记住,您需要牢记大量的安全问题。如果需要的话,很乐意对此进行扩展。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Inkscape 将 SVG 字符串转换为 jpg 的相关文章

随机推荐

  • 方形图像视图

    我想展示一个ImageView它在对话框内始终是方形的 尺寸可能会根据显示器的分辨率而变化 准确地说是纵向宽度 但 ImageView 需要形成尽可能大的正方形 以在其中容纳正方形图像 这是我的 XML 代码
  • Mule 3:控制是否允许执行流

    我目前的情况 我目前有一个 Mule ESB 应用程序 其中包含三个流 这些流处理来自两个不同源的消息 这三个流使用 VM 队列绑定在一起 Flow 1 入站 端点 1 gt 执行消息处理和转换 gt 出站 端点 3 Flow 2 入站 端
  • 类型错误:“tuple”和“str”实例之间不支持“<”

    我有一个构建哈夫曼树的方法 如下所示 def buildTree tuples while len tuples gt 1 leastTwo tuple tuples 0 2 get the 2 to combine theRest tup
  • Google 地图 API v3 标记重叠

    我正在使用谷歌地图制作一个应用程序 当标记重叠时 即使图标不同 也仅显示最后一个 我不希望它在这种情况下聚集 而是应该通过更改坐标来显示两者 但是 有什么解决办法吗 我认为这是一个非常优雅的解决方案 称为 蜘蛛化标记 https githu
  • 从 Active Directory PrimaryContext 获取所有用户

    我使用以下代码来访问 AD 中的用户列表 但是在将用户添加到组合框的行上 出现空引用异常 PrincipalContext AD new PrincipalContext ContextType Domain mydomainip User
  • 将 24 小时制时间转换为 Joda-Time 中的 am/pm

    我刚刚开始工作乔达时间 并让它正确显示我的日期24小时制 军事时间 但我宁愿是上午 下午 查了一下 里面提到了一天中的某个时刻我认为这是 HH 值 所以我尝试编写一个循环将其分解为 AM Pm 但它从未成功 DateTime dtf new
  • 如何在 Cython 中将 C 指针和长度包装在新型缓冲区对象中?

    我正在 Cython 中编写 Python 2 7 扩展模块 如何创建一个实现新型缓冲区接口的 Python 对象 该对象包装由 C 库提供给我的一块内存 内存块只是一串字节 而不是结构或多维数组 我得到了一个const void 指针和长
  • 我可以使用 bootstrap 来设计 HTML 电子邮件模板吗

    我需要设计一个HTML 电子邮件模板通过电子邮件发送给我的客户 我知道对于设计一个 html 电子邮件模板 不应有 css 文件linked 所有样式都应该内联到 html 中 所有图像应该是引用的通过在线服务器 url 不应存储在本地 我
  • 如何按空格分割字符串但在引号内转义空格(在java中)? [复制]

    这个问题在这里已经有答案了 我有一个像这样的字符串 Video or movie parent Media or entertainment 1 1 1 0 0 我想用空格分割它 但引号内的空格应该被忽略 所以分割后的字符串应该是 Vide
  • 使用 CLLocation 计算两个坐标之间的距离

    我在用着CLLocationDistance获取两点之间的距离 但在传递当前位置时出现错误 CLLocation current CLLocation alloc initWithLatitude startLocation coordin
  • uniswap 程序集 create2 功能如何工作?

    我正在查看 uniswap 代码 试图理解代码 其中大部分内容都非常清楚 但我确实有一些问题 在这个函数中 function createPair address tokenA address tokenB external returns
  • 在值构造函数中指定类约束

    有没有办法为值构造函数的参数定义类约束 像这样的东西 data Point2D Num a gt Point a a 那么 Point 可以接受任何参数 只要它们属于 Num 类 您可以使用ExistentialQuantification
  • 删除列表中元组的第一个元素

    我有一个元组列表 如下所示 values 1 hi you 2 bye bye 然而 每个元组的第一个元素不是必需的 期望的输出是 hi you bye bye 我已经做了足够的研究 知道我无法操作元组 但我似乎无法找到如何成功删除列表中每
  • 我如何“取消设置”已声明的类

    我有一个完整的表单创建系统 有许多不同的问题类型 我必须检查该人所做的答案是否正确 所有类型的问题都有自己的类 始终称为 ItemClass 并且该类位于其自己的文件中 每次提出问题时 我都会包含该文件 但存在问题 我必须在一个 PHP 文
  • 如何在字符串的特定位置添加字符?

    我正在使用 Notepad 想要使用正则表达式替换在字符串中的特定位置插入字符 比如说 在每行的位置 6 处插入一个逗号 表达式会是什么 如果您想在第六个字符之后添加一个字符 只需使用搜索 6 和替换 1 示例插入一个 从技术上讲 这会将每
  • Java 调试器无法调用某些默认方法实现

    我正在 IntelliJ IDEA 中编码 调试我的应用程序时 我无法使用某些默认方法实现Watches 这是一个浓缩示例 public class Friendship interface Friend default void sayH
  • 如何在 iOS 7 上让 NSTimer 在后台保持活动状态?

    我创建了在后台运行 NSTimer 的应用程序 我使用位置管理器在后台运行 NSTimer 我使用下面的链接在后台运行 NSTimer 如何在 iOS 应用程序中每 n 分钟更新一次后台位置 这种方法在 iOS 6 中工作正常 但在 iOS
  • Activity崩溃生命周期方法-android

    我正在开发一个应用程序 在崩溃的情况下 需要保存崩溃时的一些数据 现在 我将数据保存在 onDestroy 中 如下所示 Override protected void onDestroy saveState super onDestroy
  • Windows Phone 7 中的推送通知问题

    我尝试了以下教程来在 Windows Phone 7 中创建推送通知 http www sgtconker com 2010 03 article windows phone 7 push notifications http www si
  • 如何使用 Inkscape 将 SVG 字符串转换为 jpg

    在花了两天时间尝试使用 ImageMagick 从 SVG 字符串光栅化 jpeg 后 我终于放弃了 虽然我设法使实际转换工作正常 但在渲染图像时 Imagemagick 似乎无法正确转换变换 旋转功能 导致输出与原始 SVG 不同 经过进