递归查找图像、复制、重命名和调整大小?

递归查找图像、复制、重命名和调整大小?

如何以递归方式查找图像并将其复制到具有新名称的目录中?例如:

folder
- subfolder1
   - a.jpg
- subfolder2
   - b.jpg
- subfolder3
   - c.jpg

所以我可以得到:

folder
- subfolder1
   - a.jpg
   - a-copy.jpg
- subfolder2
   - b.jpg
   - b-copy.jpg
- subfolder3
   - c.jpg
   - c-copy.jpg

理想情况下,我希望将复制的图像的大小调整为最大 50px 宽度(比原始图像更小)。

有任何想法吗?

答案1

首先检查echo包含以下内容(从包含目录的父目录中运行,或者在下面folder提供/full/path/to/folder/*/*.jpg):

for f in folder/*/*.jpg
  do
    echo convert -geometry 50x "$f" "${f%.*}-copy${f//*./.}"
    done

...如果对命名输出满意,请删除echo并再次运行,如下所示:

for f in folder/*/*.jpg
  do
    convert -geometry 50x "$f" "${f%.*}-copy${f//*./.}"
    done

...进行实际的调整大小。

要包含其他文件扩展名(区分大小写),请将它们添加到括号扩展中,如folder/*/*.{jpg,JPG,png,PNG}等。

注意对于图像调整大小,你需要convert在您的系统上...另外,请注意上面的convert -geometry 50x ...行将放大宽度小于 50 的图像,您可能需要考虑扩大它或使用例如convert -resize 20% ...

相关内容