IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    用Linux的ImageMagick库批量为指定目录下所有图片添加图片水印的脚本

    52txr发表于 2024-12-29 18:06:06
    love 0

    作为一个很拉胯的Linux选手,如果想要把图片进行批量处理的话,按照以前肯定是先下载下来处理好了再上传上去。这样实在是太麻烦了。其实Linux里有一个强大的库ImageMagick用来处理图片。本文就是介绍一下如何利用这个库来实现批量为图片增加水印。

    安装 ImageMagick

    debian或者ubuntu的安装命令:

    sudo apt-get update
    sudo apt-get install imagemagick

    脚本

    #!/bin/bash
    
    # 设定最小尺寸阈值
    MIN_WIDTH=400
    MIN_HEIGHT=400
    
    # 图片目录
    IMAGE_DIR="/www/wwwroot/i/img76"
    
    # 水印图片
    WATERMARK="/www/wwwroot/i/watermarked.png"
    
    # 循环遍历文件夹中的所有图片
    for img in "$IMAGE_DIR"/*.png; do
      # 获取图片的尺寸
      dimensions=$(identify -format "%wx%h" "$img")
      width=$(echo $dimensions | cut -dx -f1)
      height=$(echo $dimensions | cut -dx -f2)
    
      # 判断图片尺寸是否符合要求
      if [ "$width" -ge "$MIN_WIDTH" ] || [ "$height" -ge "$MIN_HEIGHT" ]; then
        # 添加水印到图片中心并替换原图片
        convert "$img" -gravity center -geometry +0+0 "$WATERMARK" -composite "$img"
      fi
    done

    1、设定最小尺寸阈值:对于太小的图片则不添加水印,||是或条件,如果想要同时满足长和宽的条件都大于设定值才添加水印,可以把||改为&&

    2、图片目录:要进行添加水印的图片目录,建议在正式添加前先新建一个tempimg文件夹进行效果的测试

    3、水印图片:制作的水印图片,可以使用PPT之类的来制作自己的水印图片

    4、循环遍历文件夹中的所有图片:"$IMAGE_DIR"/*.png是指遍历所有的png图片,如果是jpg图片则可以改为"$IMAGE_DIR"/*.jpg

    5、添加水印的位置:上面是添加到图片的中心,当然也可以添加到别的位置。可以通过调整 -geometry 参数中的偏移量来实现。-geometry 参数的格式是 +X+Y,其中 X 和 Y 分别表示水印相对于 -gravity 指定位置的水平和垂直偏移量。
    左上角:

    convert "$img" -gravity northwest -geometry +10+10 "$WATERMARK" -composite "$img"

    右上角:

    convert "$img" -gravity northeast -geometry +10+10 "$WATERMARK" -composite "$img"

    左下角:

    convert "$img" -gravity southwest -geometry +10+10 "$WATERMARK" -composite "$img"

    右下角:

    convert "$img" -gravity southeast -geometry +10+10 "$WATERMARK" -composite "$img"

    使用方法

    1. 保存脚本为 .sh 文件(例如 add_watermark_center.sh)。
    2. cd 到脚本所在的文件夹目录
    3. 使用 chmod +x add_watermark_center.sh 命令赋予执行权限。
    4. 运行脚本:./add_watermark_center.sh。

    注意事项

    这里建议大家先创建一个文件夹用来测试,等达到自己想要的效果再批量进行。

    最好对原始图片进行一个备份,因为覆盖添加后就找不到原来的图片了。



沪ICP备19023445号-2号
友情链接