Saya punya galeri besar, 12GB, di server, penuh gambar di berbagai subfolder. File-file itu terlalu besar dan tidak digunakan dalam resolusi penuh. Saya perlu mengubah ukuran semua gambar hingga lebar 820px (menjaga proporsi). Jadi pertanyaan saya adalah - bagaimana saya bisa membuat semacam skrip perayapan yang akan mengubah ukuran semua gambar lebih besar dari 820px dan menyimpannya kembali menimpa file asli?
Semoga Anda bisa membantu saya :-) Terima kasih sebelumnya.
linux
images
batch-jobs
G-Gore
sumber
sumber
find . -name "*.jpg" -exec mogrify -resize 820x {} +
akan melakukan semuanya; jika Anda tidak ingin memproses yang "kurang dari 820px", ada beberapa opsi di sini .Jawaban:
Alat ImageMagick mengkonversi atau mogrify akan melakukan pekerjaan itu.
Anda bisa mendapatkannya melalui manajer paket Anda atau sumber / rpms di sini: http://www.imagemagick.org/script/binary-releases.php#unix
Penggunaan dasar:
Jika Anda membutuhkan rekursi:
sumber
find . -name '*.jpg' -execdir mogrify -resize '820x620>' {} \;
Gunakan
convert
untuk melakukan pekerjaan itu.convert -resize "1024x768>" origIMG destIMG
akan mengubah ukuran origIMG menjadi 1024x768 dengan menjaga aspek rasio dan mengubah ukuran hanya jika gambar lebih besar dari 1024, menyimpan gambar baru di destIMG. Setelah itu Anda dapat memindahkan destIMG ke aslinya.Gunakan loop untuk melakukan perjalanan melalui semua direktori Anda atau gunakan
find
.sumber
find
?