รุ่นที่เปลี่ยนสีได้อย่างโปร่งใส


17

ฉันมีภาพ PNG จำนวนมาก (มากเกินไปที่จะทำทีละภาพ) ด้วยพื้นหลังสีชมพูสดใสและต้องการเปลี่ยนสีพื้นหลังด้วยความโปร่งใส หากไม่สามารถทำได้หรือยากโดยเฉพาะการเปลี่ยนสีที่ระบุด้วยสีขาวจะเป็นประโยชน์

ฉันมี gimp แต่ไม่ใช่ photoshop และไม่สบายใจเป็นพิเศษกับ command line ดังนั้นหากวิธีการแก้ปัญหานั้นต้องการโปรดแสดงแต่ละขั้นตอน มันจะเป็นการดีที่ได้ทำสิ่งนี้ความช่วยเหลือใด ๆ จะได้รับการชื่นชม

คำตอบ:


21

ฉันรู้ว่าคุณบอกว่าคุณไม่พอใจกับเครื่องมือบรรทัดคำสั่ง แต่ ImageMagick สามารถทำได้:

แทนที่สีเฉพาะ

convert balloon.gif -transparent blue balloon_trans.gif

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

balloon.gifอิมเมจต้นฉบับอยู่ที่ไหน-transparentระบุว่าคุณต้องการ bg โปร่งใสblueคือสีที่คุณต้องการแทนที่และballoon_trans.gifเป็นอิมเมจที่เสร็จสมบูรณ์

นี่คือสมมติฐานที่ว่า "สีชมพูสดใส" ของคุณไม่ได้เป็นส่วนหนึ่งของภาพใด ๆ สำหรับการลบพื้นหลังที่ชาญฉลาดกว่าเล็กน้อย (floodfill) ให้ดูบทช่วยสอนนี้: กำบังเบื้องหลังแบบง่าย ๆ (floodfill)

สิ่งนี้อาจมีขนเล็กน้อยและตัวเลือกบางอย่างที่พวกเขาระบุอาจไม่จำเป็นสำหรับสิ่งที่คุณพยายามทำดังนั้น @graphics man แนะนำให้คุณเพิ่มbackgroundคำสั่ง


หากคุณสามารถบอกฉันได้ว่าระบบปฏิบัติการที่คุณใช้อยู่และรูปตัวอย่างฉันสามารถช่วยคุณในการสร้างสคริปต์นี้โดยอัตโนมัติสำหรับหลาย ๆ ภาพ


เฉพาะสถานการณ์ของคุณ:

ก่อนติดตั้งImageMagick คุณอาจต้องรีสตาร์ทหลังการติดตั้งเพื่อให้ตัวแปร PATH ของคุณได้รับการอัปเดต (ฉันทำ)

เมื่อติดตั้งแล้วให้เปิดพรอมต์คำสั่ง (เมนูเริ่มพิมพ์cmdกด Enter)

คุณต้องเปลี่ยนไดเรกทอรีเป็นที่เก็บภาพ สำหรับสถานการณ์ของคุณให้ป้อนคำสั่งต่อไปนี้:

cd C:\Users\Eric\Pictures\pngs\logos

ตอนนี้เราต้องสร้างโฟลเดอร์เพื่อบันทึกรูปภาพทั้งหมดใน:

mkdir batch

และตอนนี้คำสั่งในการแปลงภาพทั้งหมด:

FOR %G IN (*.png) DO convert "%G" -transparent #FF00FF "batch\%G"

หมายเหตุ: สำหรับ ImageMagick v7 ให้ใช้magickแทนconvertเช่นนั้น

FOR %G IN (*.png) DO magick "%G" -transparent #FF00FF "batch\%G"

หากทุกอย่างเป็นไปอย่างราบรื่นรูปภาพที่เพิ่งบันทึกใหม่ควรอยู่ในโฟลเดอร์แบตช์ที่คุณสร้างขึ้น

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


1
ทางออกที่ดีถ้าใครสงสัย linux bash: สำหรับไฟล์ใน * .png; อย่าแปลง "$ {file}" -transparent '# ffcc66' "batch / $ {file}"; เสร็จแล้ว
Sameer Shemna

สำหรับ Mac ดูเหมือนว่าจะเกี่ยวข้องกัน: superuser.com/questions/773590/… ขอบคุณ!
Dan Rosenstark

สิ่งนี้ไม่ทำงานเหมือนที่ Gimp ทำ หากคุณมีพิกเซลสีขาวที่มีอัลฟา 0.5 อยู่ด้านบนของพิกเซลสีดำและคุณต้องการลบสีดำพิกเซลสีเทาจะยังคงอยู่
Iulian Onofrei

3

ถ้าคุณกำลังเรียก GIMP และไม่ได้ต้องการที่จะไป ImageMagick คุณอาจต้องการที่จะดูที่ตัวประมวลผลชุดของดาวิด (DBP) มันเป็นปลั๊กอินสำหรับ gimp สำหรับการประมวลผลชุด หมายเหตุฉันไม่เคยใช้หรือทดสอบ แต่เป็นสิ่งที่ฉันเคยเห็นมาก่อน หากคุณมี Photoshop ฉันสามารถแสดงวิธีการใช้ชุดหรือการกระทำ


ฉันมีสิ่งนั้นและใช้มันเพื่อครอปภาพเหล่านี้จำนวนมาก แต่ดูเหมือนจะไม่มีตัวเลือกใด ๆ ในการเปลี่ยนสี บางทีฉันอาจจะหายไปหรือมีรุ่นเก่า?
ete

ฉันไม่รู้. ฉันเพิ่งคุ้นเคยกับปลั๊กอินเพราะลูกค้าใช้เพื่อแก้ไขภาพจำนวนมากและได้รับข้อผิดพลาด ดังที่ John ได้โพสต์ Imagemagick เป็นตัวเลือกที่ทรงพลังและสามารถแก้ไขปัญหาทั้งหมดของคุณได้ มีเว็บไซต์ที่มีรายละเอียดมาก ลองดูimagemagick.org/script/index.php
DᴀʀᴛʜVᴀᴅᴇʀ

3

สิ่งนี้ได้ผลเหมือนมนต์เสน่ห์สำหรับฉัน:

http://photobatch.wikidot.com/action-color-to-alpha

Phatch เป็นโปรเซสเซอร์ภาพชุด การกระทำที่เป็นสีถึงอัลฟาทำสิ่งที่คุณต้องการอย่างแน่นอน

"ค่าของสีที่ควรโปร่งใส"

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