PNG Batch ปรับขนาดและบันทึกในขณะที่รักษาความโปร่งใส


10

ฉันมีรูปภาพมากกว่า 700 ภาพ png ฉันต้องการปรับขนาดและบันทึก อย่างไรก็ตามฉันต้องการความโปร่งใสของพวกเขาที่จะไม่บุบสลาย

ฉันลอง Irfanview แต่ไม่ได้ผล GIMP ใช้งานได้ แต่ฉันไม่พบตัวเลือกการบันทึกแบบกลุ่ม ฉันจะไม่ปรับขนาดด้วยตนเองและบันทึกภาพมากกว่า 700 ภาพ มันน่าเบื่อเกินไป

มีแอปพลิเคชันใดบ้างที่ทำงานที่ฉันต้องการ?


คุณลอง ImageMagick แล้วหรือยัง
slhck

ไม่ แต่นั่นไม่ใช่สำหรับเซิร์ฟเวอร์ใช่ไหม
Grumpy ol 'Bear

1
คุณหมายถึงอะไรสำหรับเซิร์ฟเวอร์ เป็นซอฟต์แวร์บรรทัดคำสั่งที่สามารถเรียกใช้บนระบบปฏิบัติการใด ๆ
slhck

ใช่แล้ว บรรทัดคำสั่งไม่ใช่จุดแข็งของฉัน ฉันต้องการบางสิ่งด้วย GUI ที่มีประโยชน์
Grumpy ol 'Bear

@ DonSalva คุณสามารถทำได้ภายใน 2 บรรทัด cmd โดยใช้ ffmpeg แม้ไม่มีความแข็งแกร่ง
Jet

คำตอบ:


10

ขออภัยคุณจะต้องใช้บรรทัดคำสั่ง ฉันสงสัยจริงๆว่าคุณสามารถหาโปรแกรม GUI เพื่อจัดการกับเรื่องนี้

คุณยังไม่ได้ระบุว่าคุณใช้ระบบปฏิบัติการใดอยู่ บน Linux คำสั่งต่อไปนี้จะปรับขนาดไฟล์. png ทั้งหมดในไดเรกทอรีปัจจุบัน โปรดทราบว่ามันจะเขียนทับภาพต้นฉบับ:

##  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

โปรดทราบว่าสำหรับสายของ Windows ถ้าคุณใช้มันในสคริปต์มากกว่าในบรรทัดคำสั่งคุณจำเป็นต้องใช้มากกว่า%%i%i


อีกตัวเลือกหนึ่งที่จะเป็นคนพิการสคริปต์ สคริปต์นี้จะปรับขนาดภาพของคุณ (ที่มา ):

(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)))))

บันทึกตามที่batch_resize.scmอยู่ในscriptsไดเรกทอรีของ GIMP จากนั้นเรียกใช้ดังนี้:

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

UPDATE:

ฉันเพิ่งสะดุดกับโพสต์นี้ที่แนะนำว่าปลั๊กอิน GIMP ของ David Batch Processorควรทำสิ่งที่คุณต้องการ บทความเกี่ยวกับ Linux แต่มีลิงค์ไปยังรุ่น windowsบนหน้าของปลั๊กอิน


ไม่ดีของฉันฉันมักจะลืมระบบปฏิบัติการ มันเป็น Win7 64 บิต
Grumpy ol 'Bear

ImageMagick มีรุ่น windows และคุณควร (อย่างใด) สามารถใช้สคริปต์ GIMP ใน windows ได้เช่นกัน
terdon

@DonSalva ดูคำตอบที่ปรับปรุงแล้ว
terdon

ImageMagick เป็นเครื่องมือที่ยอดเยี่ยมสำหรับงานประเภทนี้ เรียนรู้วิธีใช้และคุณจะรักมันตลอดไป!
Lee Harrison

ขอบคุณทั้งหมดที่ @evilsoup สำหรับการเพิ่มบรรทัดคำสั่ง windows
terdon

4

ฉันคิดว่าเครื่องมือImBatchสามารถช่วยคุณทำงานของคุณได้ ทำงานได้ดีกับ Win7 x64 สำหรับฉัน ว่าง.


เครื่องมือที่ยอดเยี่ยมมีความยืดหยุ่นมากกว่า IrfanView และรองรับ png ด้วยอัลฟ่า - ขอบคุณ!
Tomáš Kafka

3

XNConvertมี GUI ที่ใช้งานง่ายสำหรับงานเหล่านั้น

XnConvert เป็นตัวประมวลผลภาพข้ามแพลตฟอร์มที่ทรงพลังและฟรีช่วยให้คุณสามารถรวมการกระทำได้มากกว่า 80 รายการ เข้ากันได้กับ 500 รูปแบบ จะใช้โมดูลการประมวลผลชุดของ XnViewMP

  • การประมวลผลชุด
  • รักษาความโปร่งใส (ทดสอบด้วยPNG แบบโปร่งใส )
  • ปรับขนาดอัตโนมัติหรือกำหนดไว้ล่วงหน้า
  • ไม่จำเป็นต้องติดตั้ง

ป้อนคำอธิบายรูปภาพที่นี่


ฉันลองสิ่งนี้และมันก็ไม่ได้โปร่งใส (เวอร์ชั่น Mac) มันทำให้เกิดการ resampling ชนิดใด (ฉันใช้ Lanczos เหมือนที่คุณทำ)
niico

ทำสิ่งนี้ด้วยตัวเองโดยใช้ Bilinear Resampling คุณสามารถเห็นได้ในหน้าต่าง 'After' ว่าจะเป็นอย่างไรถ้าพื้นที่โปร่งใสเป็นสีดำคุณรู้ว่ามันไม่ทำงาน
niico

@niico ตอนนี้ฉันลองวิธี resample ที่แตกต่างกัน 3 วิธีแล้ว Lanczos ด้วย พวกเขาทั้งหมดผลิตภาพที่โปร่งใส บางทีรุ่น MAC อาจทำงานในลักษณะที่แตกต่างออกไป
nixda

ฉันลองสิ่งนี้บนพีซีและ Mac - เหมือนกันทั้งคู่ ต่อไป - ตอนนี้ฉันสังเกตเห็นว่าการสุ่มตัวอย่างใหม่ที่ฉันทำนั้นดูขรุขระเหมือนนรกและใช้ไม่ได้
niico

2

โดยค่าเริ่มต้นการใช้FFMpegเป็นวิธีที่สั้นที่สุด :)
ดาวน์โหลดได้ที่นี่วางไว้ในโฟลเดอร์พร้อมไฟล์ของคุณเปิดบรรทัดคำสั่งไปที่โฟลเดอร์ของคุณ (พร้อมcd) และเขียนที่นั่น:

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

และเปลี่ยน32x32ตามขนาดของคุณ มันจะปรับขนาด PNG ของคุณและวางไว้ในResizedโฟลเดอร์
สิ่งนี้จะทำงานโดยไม่มีไฟล์แบตช์ แต่ถ้าคุณต้องการที่จะนำนี้ในแฟ้มค้างคาวเขียนในสถานที่ของ %%%

หวังว่ามันจะช่วยคุณ


0

ฉันไม่ได้ลอง ImBatch หรือ XNConvert ที่คนอื่นพูดถึงที่นี่ แต่นี่เป็นคำแนะนำเพิ่มเติมสำหรับคุณ:

  • pngquant (เครื่องมือบรรทัดคำสั่งตัวเองฉันใช้ Windows GUI PNGoo รวมอยู่ในหน้า)
  • Color quantizer (ความเป็นไปได้มากมายในการปรับแต่งการตั้งค่าเพื่อใช้อัลกอริธึมที่แตกต่าง ฯลฯ ฉันไม่เคยใช้มันรวมถึง PNGoo / pngquant แต่นั่นอาจเป็นเพราะความรู้ที่ จำกัด ของฉัน)
  • TinyPNG.com (บริการเว็บฟรีมีขีด จำกัด 20 ไฟล์แต่ละไฟล์มีขนาดเล็กกว่า 5MB)

0

ฉันมีปัญหาเดียวกันนี้หลายครั้งและฉันติดตั้ง Photoshop ไว้เกือบตลอดเวลา ดังนั้นฉันจึงรวมสคริปต์นี้เข้าด้วยกันโดยใช้แรงบันดาลใจของโค้ดอื่น

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

การใช้

  • ติดตั้ง Photoshop CC หรือรุ่นที่ใหม่กว่า
  • เปิดสคริปต์ใน Photoshop
  • กล่องโต้ตอบจะขอให้คุณเลือกโฟลเดอร์ต้นทาง
  • กล่องโต้ตอบจะขอให้คุณเลือกโฟลเดอร์ปลายทาง
  • กล่องโต้ตอบอื่นจะถามคุณถึงความกว้างและความสูงสูงสุด
  • กล่องโต้ตอบอื่นจะขอความกว้างในอุดมคติของคุณ
  • รอในขณะที่สคริปต์จะเปิดไฟล์ PSD หรือ AI ทั้งหมดที่คุณมีในโฟลเดอร์ซอร์สของคุณและบันทึกเป็น PNG-24 โปร่งใส
  • กล่องโต้ตอบจะแจ้งให้คุณทราบเมื่อเสร็จสิ้น

อ้างอิง

มีมากกว่า 2 ลิงค์เพื่ออ้างอิงชื่อเสียงปัจจุบันของฉันไม่อนุญาตให้โพสต์อีก ดูสคริปต์ต้นฉบับตามเอกสารอ้างอิง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.