linux svg转png - Sun, Apr 5, 2020
linux svg转png
1. 概述
前端对远程获取svg支持不是很好,大部分的前端都是使用本地的svg文件进行图标的显示。 然而大部分的图标又是svg格式,所有需要将svg文件转png文件。
2. convert
linux下ImageMagick的convert命令非常强大,能够进行绝大部分图片的相互转换; 并且很能修改图片的参数,比如:旋转,翻转,颜色翻转,等等
批量进行svg转png的shell代码。
其中 WORKDIR
是要遍历的文件夹,TARGET
是要输出的文件夹。
代码会根据在WORKDIR
中的目录结构,自动在TARGET
文件夹中创建相对应的目录。
#!/bin/bash
set -e -o pipefail
: "${WORKDIR:=/home/pana/Downloads/edgex/PapirusL}"
: "${TARGET:=/home/pana/Downloads/edgex/Papirus}"
svg2png() {
for file in "$1"/*;do
if [ -d "${file}" ];then
# 如果是文件夹
svg2png "${file}"
elif [ -f "${file}" ];then
# 如果是文件
if [ "${file##*.}" == "svg" ];then
# 如果文件是svg文件
png="${file/${WORKDIR}/${TARGET}}"
png=${png/%svg/png}
name="$(basename "${png}")"
path=${png/${name}/}
if [ ! -d "${path}" ];then
mkdir -p "${path}"
fi
convert -background none "${file}" "$png"
echo "convert ${name} ok"
fi
fi
done
}
svg2png "${WORKDIR}"