创建与图片同名的缩略图
请问,这是我的小代码,用于创建保存在名为“pictures”的文件夹中的图片缩略图,并将其保存在名为“thumbs”的另一个文件夹中。
#!/bin/bash for i in *.jpg do convert -thumbnail 100 $i thumbs/$i done
但是,程序没有做两件事:
-
它不会保留缩略图中图片的名称。 例如,我希望它为名为
pic.jpg
的图片生成名为pic.jpg
的缩略图 -
此外,当我运行程序时,我不希望它为已生成缩略图的图片生成缩略图,除非该图片已被修改。
任何帮助将非常感谢。
根据ImageMagick文档 ,
ImageMagick命令行包含
- 一个或多个必需的输入文件名。
- 零,一个或多个图像设置。
- 零个,一个或多个图像运算符。
- 零个,一个或多个图像序列运算符。
- 零,一个或多个图像堆栈。
- 零或一个输出图像文件名(转换,复合,蒙太奇,比较,导入,召唤所需)。
因此,您需要在-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;