Linux 下各种格式转换的小工具清单

convert tools

dot

$ sudo apt install graphviz
$ dot -Tpng -o "$2" "$1"
#!/bin/sh

if [ 'x'$#'x' == 'x0x' ]; then
echo "dot2png [dot file] [png file]"
else
dot -Tpng -o "$2" "$1"
fi

markdown

安装

$ sudo apt install pandoc

md to docx

$ pandoc -f markdown -t docx -o "$1".docx "$1"

md to html

$ pandoc -f markdown -t html -o "$1".html "$1"

pdf split to png

安装

$ sudo apt install pdf2svg
$ sudo apt install librsvg2-bin

脚本

#!/bin/bash

function first_svg_then_png () {
pdf2svg "$1" "$2".svg "$2"
rsvg-convert -b white -w 1200 "$2".svg -o "$2".png
rm -rf "$2".svg
}

for ((i=1; i<=$2; i++)) {
first_svg_then_png "$1" $(printf %02d $i)
}

imagemagick

resize

$ convert "$1" -resize "$2"% "$1".p"$2"

ffmpeg

convert m4a to mp3

$ ffmpeg -i $1 -q:a 0 $1.mp3

convert flac to mp3

$ ffmpeg -i $1 -ab 320k -map_metadata 0 -id3v2_version 3 $1.mp3

pngquant

$ sudo apt-get install pngquant
#!/bin/bash
#
# author: mingming.killer@gmail.com
#
# $1: path
# $2: compress quality: 0 - 100
functionfunc_compress()
{
local path=$1
local quality=$2
local file=""
ls $path | whileread image
do
echo"compress $image to $quality"
file=${path}"/"${image}
#echo "resize $file to $size"
pngquant -f --ext .png --quality $quality-$quality$file
done
}
# ==================================
# main entry:
if [ "$1" = "" -o $# -lt 2 ]; then
echo"Usage: $0 path quality"
exit 1
else
func_compress $1$2
fi
# ==================================

用法就是:

$ png_quant pics/ 75

就会把当前目录下 pics 文件夹下所有的 png 文件按 75% 的质量进行压缩(替换原文件)。有些时候一些 png 使用 75 会出现压缩无效的情况(就是图片大小没变),可以尝试调节下压缩比较到 60。

convert

$ sudo apt-get install imagemagick

命令语法:

$ convert [input-option] input-file [output-option] output-file

同样也是写了一个脚本(image_resize)来实现缩放指定文件夹下所有图片的:

#!/bin/bash
#
# author: mingming.killer@gmail.com
#
# $1: path
# $2: resize pre
functionfunc_resize()
{
local path=$1
local size=$2
local file=""
ls $path | whileread image
do
echo"resize $image to $size"
file=${path}"/"${image}
#echo "resize $file to $size"
convert -resize $sizex$size$file$file
done
}
# ==================================
# main entry:
if [ "$1" = "" -o $# -lt 2 ]; then
echo"Usage: $0 path resize"
exit 1
else
func_resize $1$2
fi
# ==================================

用法就是:

$ image_resize pics/ 60 

就会把当前目录下 pics 文件夹下所有的图片件缩放到原来的 60%(替换原文件)。

lame

lame 是 mp3 转化 wav 工具,安装:

$ sudo apt-get install lame

用法:

$ lame --decode sound.mp3 sound.wav

vorbis-tools

图片 vorbis-tools 是 ogg 转 wav 工具,安装:

$ sudo apt-get install vorbis-tools

用法:

$ oggdec sound.ogg -o sound.wav

备忘

pngquant/convert/lame/oggdec 相关来自: 这几款 Linux 精美工具,用后效率直接翻倍 !