สำหรับการทดสอบฉันต้องสร้างภาพ jpg-1700 (แม้แต่ที่ว่างเปล่า) อย่างรวดเร็วในขนาดที่กำหนด 1,000x706 ฉันสงสัยว่าเราสามารถทำได้ด้วยเชลล์สคริปต์หรือโปรแกรม (เช่น ImageMagick) ฉันหวังว่าพวกเขาเรียกว่าimg_0.jpg
, img_1.jpg
...
มีคนรู้วิธีแก้ปัญหาง่าย ๆ ?
สำหรับการทดสอบฉันต้องสร้างภาพ jpg-1700 (แม้แต่ที่ว่างเปล่า) อย่างรวดเร็วในขนาดที่กำหนด 1,000x706 ฉันสงสัยว่าเราสามารถทำได้ด้วยเชลล์สคริปต์หรือโปรแกรม (เช่น ImageMagick) ฉันหวังว่าพวกเขาเรียกว่าimg_0.jpg
, img_1.jpg
...
มีคนรู้วิธีแก้ปัญหาง่าย ๆ ?
คำตอบ:
ต่อไปนี้ควรทำงานตามความต้องการของคุณ:
#!/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
เวอร์ชันล่าสุดแต่คุณไม่ได้ระบุว่าเชลล์ใดพร้อมใช้งาน ((
ที่มีอยู่ในเปลือกหอยมากที่สุด ( bash
, ksh
และash
อย่างน้อยไม่แน่ใจเกี่ยวกับคนอื่น ๆ )
หากคุณต้องการวิธีเขียนสคริปต์เพื่อสร้างภาพที่ไม่ว่างจำนวนมากลองพิจารณา: https://perlmaven.com/drawing-images-using-gd-simple