Làm thế nào để tạo ra nhiều tập tin hình ảnh (trống)?


12

Để thử nghiệm, tôi cần nhanh chóng tạo 1700 hình ảnh jpg (thậm chí trống) với kích thước xác định 1000x706. Tôi tự hỏi nếu chúng ta có thể làm điều này với một kịch bản shell hoặc một chương trình (như ImageMagick). Tôi ước họ gọi img_0.jpg, img_1.jpgLọ

Ai đó biết một giải pháp đơn giản?

Câu trả lời:


21

Sau đây nên làm việc cho nhu cầu của bạn:

#!/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 tạo ra hình ảnh đầu tiên, và sau đó nó được sao chép để tạo ra 1700 tệp. Nếu ulimitkhông hạn chế bạn làm điều đó (có thể sẽ như vậy) và bạn có đủ bộ mô tả tệp, bạn có thể thay thế vòng lặp bằng:

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

Bạn cũng có thể sử dụng thành ngữ ngắn hơn (với yêu cầu bộ nhớ lớn hơn để lưu trữ tất cả các số cùng một lúc) for _num in {1..1699}trong các bashphiên bản gần đây , nhưng bạn không chỉ định loại vỏ nào khả dụng. ((có sẵn trong hầu hết các vỏ ( bash, kshashít nhất, không chắc chắn về những người khác).


Cảm ơn sự giúp đỡ của bạn. Tôi thử điều này trong một vài giờ. Cảm ơn bạn vì ý tưởng =) Tôi bỏ phiếu cho câu trả lời của bạn ngay khi tôi có đủ điểm
Raphaël

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.