Mengubah ukuran dan menyimpan PNG Batch sekaligus menjaga transparansi

10

Saya punya sekitar 700+ gambar png. Saya perlu mengubah ukuran dan menyimpannya. Namun saya juga membutuhkan transparansi mereka untuk tetap utuh.

Saya mencoba Irfanview, tetapi itu tidak berhasil. GIMP berfungsi, tetapi saya tidak dapat menemukan opsi penghematan batch. Saya tidak akan mengubah ukuran dan menyimpan 700+ gambar secara manual. Itu terlalu membosankan.

Apakah ada aplikasi di luar sana yang melakukan pekerjaan yang saya butuhkan?

Beruang yang pemarah
sumber
Sudahkah Anda mencoba ImageMagick?
slhck
Tidak, tetapi bukankah itu untuk server?
Grumpy ol 'Bear
1
Apa maksudmu, untuk server? Ini adalah perangkat lunak baris perintah yang dapat dijalankan pada sistem operasi apa pun.
slhck
Ya tidak Baris perintah bukan kekuatan saya. Saya butuh sesuatu dengan GUI yang praktis.
Grumpy ol 'Bear
@DonSalva Anda dapat melakukannya dalam 2 baris cmd dengan menggunakan ffmpeg, bahkan tanpa kekuatan
Jet

Jawaban:

10

Maaf, Anda harus menggunakan baris perintah. Saya benar-benar ragu bahwa Anda dapat menemukan program GUI untuk menangani hal ini.

Anda belum menentukan OS mana yang Anda gunakan. Di Linux, perintah berikut ini akan mengubah ukuran semua file .png di direktori saat ini. Perhatikan bahwa itu akan menimpa gambar asli:

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

Perhatikan bahwa, untuk baris Windows, jika Anda menggunakannya dalam skrip alih-alih pada command-line, Anda harus menggunakan %%ialih-alih %i.


Pilihan lain adalah skrip GIMP . Script ini akan mengubah ukuran gambar Anda ( sumber ):

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

Simpan sebagai batch_resize.scmdi scriptsdirektori GIMP , kemudian jalankan sebagai berikut:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

MEMPERBARUI:

Saya baru saja menemukan posting ini yang menunjukkan bahwa plugin BIMP Processor David GIMP harus melakukan apa yang Anda inginkan. Artikel ini tentang Linux tetapi ada tautan ke versi windows di halaman plugin.

terdon
sumber
Buruk saya, saya selalu lupa OS. Ini Win7 64bit.
Grumpy ol 'Bear
ImageMagick memiliki versi windows dan Anda harus (entah bagaimana) dapat menggunakan skrip GIMP di windows juga.
terdon
@ DonSalva lihat jawaban yang diperbarui.
terdon
ImageMagick adalah alat yang luar biasa untuk jenis pekerjaan ini. Pelajari cara menggunakannya dan Anda akan menyukainya selamanya!
Lee Harrison
Semua berkat @evilsoup untuk menambahkan baris perintah windows.
terdon
4

Saya pikir alat ImBatch dapat membantu Anda dengan tugas Anda. Bekerja dengan baik dengan Win7 x64 untuk saya. Ini gratis.

Max Smirnoff
sumber
Alat hebat, jauh lebih fleksibel daripada IrfanView dan mendukung png dengan alpha - terima kasih!
Tomáš Kafka
3

XNConvert memiliki GUI yang sederhana dan intuitif untuk tugas-tugas tersebut.

XnConvert adalah prosesor gambar batch lintas-platform yang kuat dan gratis, memungkinkan Anda untuk menggabungkan lebih dari 80 tindakan. Kompatibel dengan 500 format. Ini menggunakan modul pemrosesan batch XnViewMP

  • pemrosesan batch
  • menjaga transparansi (diuji dengan PNG transparan )
  • mengubah ukuran otomatis atau standar
  • tidak diperlukan instalasi

masukkan deskripsi gambar di sini

nixda
sumber
Saya mencoba ini dan tidak mempertahankan transparansi (versi Mac). Apakah itu membuat resampling seperti apa yang digunakan (saya menggunakan Lanczos seperti yang Anda lakukan).
niico
Mengerjakan ini sendiri - menggunakan Bilinear Resampling melakukannya. Anda dapat melihat di jendela 'Setelah' bagaimana tampilannya - jika area transparan berwarna hitam Anda tahu itu tidak akan berfungsi.
niico
@niico Saya sekarang mencoba 3 metode resample yang berbeda, Lanczos juga. Mereka semua menghasilkan gambar transparan. Mungkin versi MAC bekerja dengan cara yang berbeda
nixda
Saya mencoba ini pada PC dan Mac - identik pada keduanya. Lebih lanjut - Saya sekarang melihat resampling yang saya lakukan sangat bergerigi dan tidak dapat digunakan.
niico
2

Secara default, menggunakan FFMpeg adalah cara terpendek :)
Unduh di sini , letakkan di folder dengan file Anda, buka baris perintah, buka folder Anda (dengan cd) dan tulis di sana:

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

dan ganti 32x32dengan ukuran Anda. Ini akan mengubah ukuran PNG Anda dan meletakkannya di Resizedfolder.
Ini akan melakukan pekerjaan tanpa file batch. Namun jika Anda ingin meletakkan ini di file bat, tulis %%di tempat %.

Semoga ini bisa membantu Anda.

Jet
sumber
0

Saya belum mencoba ImBatch atau XNConvert, yang orang lain sebutkan di sini, tetapi berikut adalah beberapa saran untuk Anda:

  • pngquant (alat baris perintah. Saya sendiri, saya menggunakan Windows GUI PNGoo yang disertakan pada halaman)
  • Pengukur warna (banyak kemungkinan untuk mengubah pengaturan untuk menggunakan berbagai algoritme dithering, dll. Saya tidak pernah menggunakannya serta PNGoo / pngquant, tapi itu mungkin karena pengetahuan saya yang terbatas).
  • TinyPNG.com (layanan web gratis memiliki batas 20 file, masing-masing lebih kecil dari 5MB)
Carl
sumber
0

Saya memiliki masalah yang sama beberapa kali, dan saya sudah menginstal Photoshop untuk sebagian besar waktu tersebut. Jadi saya menyatukan skrip ini menggunakan beberapa inspirasi kode orang lain.

https://gist.github.com/pixelbacon/7754cba64125b0240504

Pemakaian

  • Instal Photoshop CC atau versi yang lebih baru.
  • Buka skrip di Photoshop.
  • Dialog akan meminta Anda untuk memilih folder sumber.
  • Dialog akan meminta Anda untuk memilih folder tujuan.
  • Dialog lain akan menanyakan lebar & tinggi maksimum.
  • Dialog lain akan meminta Anda untuk lebar ideal, lalu tinggi ideal.
  • Tunggu sementara skrip akan membuka semua file PSD atau AI yang Anda miliki di folder sumber dan simpan sebagai PNG-24 transparan.
  • Dialog akan memberi tahu Anda bila sudah selesai.

Referensi

Ada lebih dari 2 tautan ke referensi, reputasi saya saat ini tidak memungkinkan saya memposting lagi. Lihat skrip asli saat referensi didokumentasikan.

pixelbacon
sumber