用magick自动去除漫画图片的白边

起因

今天下了本漫画,准备放到kindle上面,按这个教程生成了几个mobi文件后,发现图片似乎有点小。

仔细一看,每一页的空白区域都很大:

于是乎找了一下,发现各种工具只能切割指定区域的白边,但是这个漫画每张图的区域都不一样。。

发现方法

逛了一大圈,最后发现magick官网)有去除白边的功能,参考convert命令的-trim参数–fuzz参数,在尝试了几次后,发现可以用这个命令:

magick convert raw.jpg \
-define trim:edges=north,east,south,west \
-background white \
-fuzz 85% \
-trim \
o.jpg

raw.jpg就是原始图片,o.jpg就是生成图片,85%这个参数看具体了,太大会导致图片被切割成一个像素点。这个命令效果相当不错

另外经过测试,貌似windows下,magick不支持中文路径和文件名,所以文件名和文件夹名如果有中文,需要改掉

批量处理!

这里偷了个懒,直接用了msys2官网)自带的bash。(早知道学学powershell了)

新建一个脚本文件,比如run.sh,内容如下:

function crop {
magick convert "$1" -define trim:edges=north,east,south,west -background white -fuzz $2% -trim "$1-done.jpg"
size="$(wc -c $1-done.jpg | awk '{print $1}')"
echo $size
if [[ $size -gt 100000 ]] #如果文件小于100k,说明转换结果是个像素点,当转换失败来处理,这里大家看需求来改
    then
    rm "$1"
    mv "$1-done.jpg" "$1"
else
    rm "$1-done.jpg"
    return 0
fi
return 1
}

#要转换的文件夹
pic=( pic/**/*.jpg );
#如果只要一层目录,用下面这行
pic=( pic/*.jpg );

for file in "${pic[@]}"
do
    echo $file
    magick convert "$file" -define trim:edges=north,east,south,west -background white -fuzz 87% -trim "$file-done.jpg"
    size="$(wc -c $file-done.jpg | awk '{print $1}')"
    echo $size
    if [[ $(crop $file 87) -eq 1 ]] #先试试87%
        then
        rm "$file"
        mv "$file-done.jpg" "$file"
    else
        if [[ $(crop $file 86) -eq 1 ]] #失败就试试6%
            then
            rm "$file"
            mv "$file-done.jpg" "$file"
        else
            if [[ $(crop $file 85) -eq 1 ]] #还是失败最后试试85%
                then
                rm "$file"
                mv "$file-done.jpg" "$file"
            fi
        fi
    fi
    echo ok
done

跑起来

效果

切的很干净

其他用途

理论上适用于一切需要切边的操作了,都可以试试

评论

  1. miuser
    4 年前
    2021-2-07 22:56:02
    Firefox 85.0 Firefox 85.0 Windows 10 x64 Edition Windows 10 x64 Edition

    也可以试试人工智能的方法

  2. cb
    4 年前
    2021-2-25 21:58:47
    Google Chrome 88.0.4324.182 Google Chrome 88.0.4324.182 GNU/Linux GNU/Linux

    大佬救我,树莓派怎么安装zeronet

  3. 路人甲
    4 年前
    2021-3-09 20:03:15
    Google Chrome 78.0.3904.108 Google Chrome 78.0.3904.108 Windows 10 x64 Edition Windows 10 x64 Edition

    支持一下交个朋友

  4. shi
    2 年前
    2023-3-01 22:17:17
    Microsoft Edge 110.0.1587.57 Microsoft Edge 110.0.1587.57 Windows 10 x64 Edition Windows 10 x64 Edition

    大佬,这个.sh文件咋用windows运行啊,查了半天,装git之类的,有点麻烦,就想问下有没有其他方便点的

    • 博主
      shi
      2 年前
      2023-3-01 22:19:19
      Firefox 110.0 Firefox 110.0 Windows 10 x64 Edition Windows 10 x64 Edition

      装个msys2

      • shi
        晨旭
        2 年前
        2023-3-01 22:24:38
        Microsoft Edge 110.0.1587.57 Microsoft Edge 110.0.1587.57 Windows 10 x64 Edition Windows 10 x64 Edition

        好的,非常感谢,我今天试一下
        还有这个
        #要转换的文件夹
        pic=( pic/**/.jpg );
        我想选择
        E:\dell\视频\漫画\shiyan
        其中的所有jpg(另外,wepb图片格式可以吗?)
        是否是这样的
        pic=( pic/E/dell/视频/漫画/
        .jpg );

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇