linux svg转png

  1. 1. 概述
  2. 2. convert

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}"

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 wind.kaisa@gmail.com

💰

×

Help us with donation