创建与图片同名的缩略图

创建与图片同名的缩略图

请注意,这是我的小代码,用于创建保存在名为“图片”的文件夹中的图片的缩略图,并将它们保存在另一个名为“缩略图”的文件夹中。

#!/bin/bash
for i in *.jpg
do
convert -thumbnail 100 $i thumbs/$i
done

但是,该程序没有做两件事:

  1. 它不会在缩略图中保留图片的名称。例如,我希望它为pic.jpg名为pic.jpg

  2. 另外,当我运行该程序时,我不希望它为已经生成缩略图的图片生成缩略图,除非该图片已被修改。

任何帮助都将非常感激。

答案1

根据ImageMagick 文档

ImageMagick 命令行包括

  1. 一个或多个所需的输入文件名。
  2. 零个、一个或多个图像设置。
  3. 零个、一个或多个图像运算符。
  4. 零个、一个或多个图像序列运算符。
  5. 零个、一个或多个图像堆栈。
  6. 零个或一个输出图像文件名(转换、复合、蒙太奇、比较、导入、召唤所需)。

因此,命令前需要有原始图像参数-thumbnail 100

如果文件存在则仅运行转换,您需要添加 if 测试。

此外,在 for 循环中您有for i in *.jpg,但在 convert 命令中您有pictures/$i。除非我误解了您在做什么,否则它们应该是相同的,就像我在示例脚本中所做的那样。如果您想要图片目录中的 thumbs 目录,请../从 convert 命令和 if test 中删除该部分。您需要从图片目录运行它,或者如果您不想,您可以将其添加cd pictures到脚本的开头。

因此,脚本应该是这样的:

#! /bin/bash

for i in *.jpg; do
    if [ "$i" -nt "../thumbs/$i" ]; then
        convert "$i" -thumbnail 100 "../thumbs/$i";
    fi
done;

相关内容