创建与图片同名的缩略图

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

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

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

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

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

任何帮助将非常感谢。

根据ImageMagick文档 ,

ImageMagick命令行包含

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

因此,您需要在-thumbnail 100命令之前-thumbnail 100原始图像参数。

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

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

所以,脚本应该是这样的:

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