如何生成大量(空白)图像文件?

如何生成大量(空白)图像文件?

为了进行测试,我需要快速创建 1700 张定义尺寸为 1000x706 的 jpg 图像(甚至是空白图像)。我想知道我们是否可以使用 shell 脚本或程序(如 ImageMagick)来完成此操作。我希望他们打电话来img_0.jpgimg_1.jpg...

有人知道一个简单的解决方案吗?

答案1

以下应该可以满足您的需求:

#!/bin/bash
convert -size 1000x706 xc:white img_0.jpg || { printf '%s\n' 'Failed to create original image' ; exit 1 ; }
for (( _num = 1 ; _num < 1700 ; _num++ )); do
   cp img_0.jpg "img_${_num}.jpg" || { printf '%s\n' "Failed to copy to image img_${_num}.jpg" ; exit 2 ; }
done

ImageMagick 创建第一个图像,然后将其复制以组成 1700 个文件。如果ulimit不限制您这样做(可能会)并且您有足够的文件描述符,您可以将循环替换为:

tee img_{1..1699}.jpg > /dev/null < img_0.jpg

for _num in {1..1699}您还可以在最近的版本中使用较短的习惯用法(需要更大的内存来一次存储所有数字)bash,但您没有指定哪些 shell 可用。((在大多数 shell 中都可用(bashkshash至少,不确定其他 shell)。

答案2

如果您想要一种可编写脚本的方式来创建大量非空白图像,可以考虑:https://perlmaven.com/drawing-images-using-gd-simple

相关内容