kaisawind's blog
  • 关于
  • 所有帖子

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


辽ICP备2021007608号 | © 2025 | kaisawind

Facebook Twitter GitHub