gpt4 book ai didi

svg - 自动将 SVG 转换为 Android 可用的 PNG

转载 作者:行者123 更新时间:2023-12-04 21:56:10 25 4
gpt4 key购买 nike

我有大约 434 个 .svg 图标,我想准备好在 Android 应用程序中使用它们。由于使用 Inkspace 手动导出它们可能是疯狂的,我试图找到一种使用 ImageMagick 和类似工具导出它们的方法。我试图为此编写一个脚本:

#!/bin/sh

echo "Deleting directories"
rm -rf ../mdpi ../hdpi ../xhdpi ../xxhdpi ../xxxhdpi

echo "Creating directories"
for d in ./*; do
mkdir -p ../mdpi/$d ../hdpi/$d ../xhdpi/$d ../xxhdpi/$d ../xxxhdpi/$d
done;

for f in ./*/*.svg; do
filename=`dirname $f`/`basename $f .svg`.png
echo "Converting $f to $filename"
convert -background transparent $f -resize 24x24 ../mdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 36x36 ../hdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 48x48 ../xhdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 72x72 ../xxhdpi/$filename # 2>/dev/null
convert -background transparent $f -resize 96x96 ../xxxhdpi/$filename # 2>/dev/null
echo 'Done'
done;

它转换它们,但结果看起来很糟糕。 SVG 的清晰线条因抗锯齿而变得模糊,因为 ImageMagick 似乎像对待任何其他图像一样对待 SVG。此外,大小都是错误的,因为几乎没有生成的文件是正方形的。

我需要一些方法来转换具有几乎这些条件的 SVG:

  • 无抗锯齿
  • 以 SVG 绘图为中心创建一个正方形图像
  • 允许为全黑 SVG 图像重新着色(可选)
  • 使用 Linux 命令行 (Arch Linux)

完整故事:我正在尝试从 Polymer 获取 Material Design 的图标,以便在 App 中使用。

最佳答案

作为每种矢量格式,您应该提供具有适当 DPI 设置的 -density 选项。将其设置为高于 72 将导致更好的分辨率。试试这个

convert -density 300 -background none input.svg -resize 128x128 -gravity center -extent 128x128  output.png

关于svg - 自动将 SVG 转换为 Android 可用的 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26072865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com