将 SVG 转换为 PNG 并调整其大小

2024-01-25

我正在尝试将 SVG 转换为 PNG(或任何光栅格式)并同时调整大小。

我以为我会使用 ImageMagick 来完成此任务,但它似乎在调整大小之前转换为光栅。

这会导致图像质量较差。

  • 有没有办法让 ImageMagick 在转换为光栅之前调整 SVG 的大小?

  • 或者我可以使用其他一些工具在调整 SVG 大小后以编程方式将其转换为栅格吗?

  • 或者,我可以使用其他工具吗?

目前我通过命令行使用 ImageMagick:

convert file.svg -resize 100x100 file.png

源图像“大小”未知,并且目标大小直到运行时才知道。


这就是我的做法,而且似乎很有效。

convert -background none -density 1000 -resize 1000x compass.svg compass.png

以下是每个部分的作用。

  • Use -background none确保 SVG 的任何透明部分保持透明并且不会被白色填充。
  • 由于 ImageMagick 仅适用于您需要使用的光栅图像-density 1000并指定要将 SVG 大小调整到的宽度。这样,当您实际调用调整大小命令时,加载的 SVG 的光栅表示形式的宽度将已经为 1000,否则您最终将根据 SVG 图像的原始大小向上或向下调整光栅大小。
  • Now use -resize 1000x为了给你的SVG一个新的宽度,高度将被自动计算以保持纵横比。

其中一个陷阱是,我真的不知道如何根据高度调整大小并计算宽度,因为-density应用于宽度,而不是高度。因此,您必须事先知道 SVG 的实际比例并相应地使用宽度。

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

将 SVG 转换为 PNG 并调整其大小 的相关文章

随机推荐

  • 如何将 Java 结果集转换为 JSON?

    我有一个使用 JDBC 连接器进行 MySQL 查询的结果集 所以我的工作就是将结果集转换为 JSON 格式 这样我就可以将其作为 AJAX 响应发送到客户端 有人可以解释一下如何转换为 JSON 格式吗 因为我对 Java 和 JSON
  • 是否有一个事件可以检测屏幕何时变暗?

    我正在使用 SCREEN DIM WAKE LOCK 所以我的永远不会关闭 它只是从全亮变为暗淡 有什么方法可以让我检测屏幕何时变暗 事件 接收器等 据我从Android的源代码中看到 当屏幕亮度状态改变时 没有发送广播通知
  • 在 Svelte 中将多个参数传递给动态路由

    我正在尝试使用 Svelte 的第一个项目 我遇到了这样的情况 我从 API 中获取结果列表 如下所示 Page with a list of items each item
  • C++:最大整数[重复]

    这个问题在这里已经有答案了 是否有一个 C 跨平台库为我提供可移植的最大整数 我想声明 const int MAX NUM call some library here 我使用 MSVC 2008 非托管 在C 标准库头文件中
  • 无法在 ASP.Net vNext 项目中使用会话

    我有一个使用 Session 的 ASP Net vNext 项目 但是我在尝试在会话中获取 设置值时收到此错误 Microsoft AspNet Http Core dll 中发生 System InvalidOperationExcep
  • 将图像添加到 jar 中

    我想为我的 JFrame 设置图标 我执行以下操作 Image icon Toolkit getDefaultToolkit getImage src images icon jpg this setIconImage icon 当我从 n
  • 从 C 静态库中删除内部符号

    我正在研究一些作为静态库提供的嵌入式代码 我们希望从库中删除所有内部符号 只保留 API 符号可见 这是我们想要做的一个示例 假设您有一个名为internal c和一个叫api c看起来像这样 internal c int fibonacc
  • 检查文件是否存在 Objective-C

    我使用下面的代码来检查文件是否存在 bool b NSFileManager defaultManager fileExistsAtPath filePath 这些代码可以在 IOS 上运行 但是当我将它迁移到 mac os x 时 但我通
  • 是否有关于如何命名资源的约定?

    Android 中是否有命名资源的约定 例如 按钮 文本视图 菜单等 Android SDK 将是一个很好的起点 例如 我尝试在活动中确定 ID 的范围 如果我有一个ListView它只是 android id list在所有活动中 但是
  • 将 KeyFilter 与 ASP.NET Core 2.0 结合使用

    我在简单的 ASP NET Core 2 0 WebAPI 应用程序中使用 KeyFilter 属性时遇到问题
  • 使用 ffmpeg 分割成相等的部分并转换许多 mp4 视频

    我有大量视频需要使用 ffmpeg 将 mp4 转换为 wmv 并将每个文件分成 10 分钟的片段 但我是一个 cmd 脚本新手 事实上 我是一个脚本新手 在花了六个小时试图找到答案之后 我想我会把它带给你们 我的代码可以运行一点 但我需要
  • aurelia - 示例,安装依赖项时出错

    我一直在关注 Aurelia 网站上的示例以及以下示例 http aurelia io hub html doc article aurelia framework latest contact manager tutorial 2 htt
  • 使用图像作为 JPanel 和 JButton 的背景

    我正在尝试使用在 Photoshop 中制作的图像作为 GUI 的背景 我怎么做 我还制作了一些图像 我想在执行操作后在按钮背景中显示 对于 JButton 请使用以下命令 JButton button new JButton Button
  • 如何检测/处理弯曲区域上的触摸事件?

    我从一个本机 iPad 应用程序开始 如果需要 我们可以假设 iOS 4 3 我需要有一系列相互碰撞的弯曲区域 我希望得到一些有关处理此问题的最佳方法的建议 我的一个想法是使用 WebView 并且只有一个 JPG 和一个 HTML 图像映
  • rdf:Bag、rdf:Seq 和 rdf:Alt 在使用时有何不同?

    我正在读RDF 模式 1 1 http www w3 org TR rdf schema ch bag建议 其中包括以下内容 强调是后加的 5 1 2 rdf 袋子 http www w3 org TR rdf schema ch bag
  • 机器人可以到达点 (x, y) 吗?

    我在一次求职面试中遇到了这个问题 我无法找到解决方案的正确算法 所以我在这里发布这个问题 有一个机器人可以通过以下两种方式在坐标平面上移动 假设机器人当前位置为 x y 如果方向如下 则机器人可以移动等于 x 和 y 之和的距离 x y g
  • mp3 的

    首先这是我当前正在编码的网站 http www clairereviens com http www clairereviens com 每个按钮上都有一个 mp3 样本的标签 所有 mp3 在 Safari 中都能完美播放 但在 Chro
  • Jenkinsfile windows cmd输出变量参考

    我对 groovy 还很陌生 在我的Jenkinsfile我试图将 Windows cmd 输出存储在变量中 在下一个命令中使用它 但似乎没有任何效果 这是我得到的最接近的 pipeline agent any stages stage p
  • UTF16(例如 Wide-winapi 函数使用的)字符是否始终为 2 字节长?

    请帮我解释一下 UTF16 是如何工作的 考虑到以下几点 我有点困惑 There is a static type in C WCHAR which is 2 bytes long always 2 bytes long obvisouly
  • 将 SVG 转换为 PNG 并调整其大小

    我正在尝试将 SVG 转换为 PNG 或任何光栅格式 并同时调整大小 我以为我会使用 ImageMagick 来完成此任务 但它似乎在调整大小之前转换为光栅 这会导致图像质量较差 有没有办法让 ImageMagick 在转换为光栅之前调整