ฉันจะบอก Photoshop ให้คงสี RGB ของพิกเซลแบบโปร่งใสเมื่อส่งออกเป็น PNG ได้อย่างไร


12

ฉันมีปัญหากับวิธีที่ Photoshop จัดการกับพิกเซลที่โปร่งใสอย่างสมบูรณ์เมื่อส่งออกเป็น PNG ซึ่งก็คือช่องสีแดงเขียวและน้ำเงินของพิกเซลโปร่งใสที่สมบูรณ์ใด ๆ จะถูกบันทึกเป็น 0 แทนที่จะเป็นสีที่ฉันกำหนดไว้ใน Photoshop .

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

(ใช่รูปแบบ PNG ตัวเองไม่ประกอบด้วยข้อมูล RGB แม้สำหรับพิกเซลอย่างเต็มที่โปร่งใส. ปัญหานี้เป็นปัญหากับ Photoshop ไม่ PNG ได้.)

หากคุณสงสัยว่าทำไมข้อมูลสีถึงมีความสำคัญเมื่อพิกเซลมีความโปร่งใสอย่างสมบูรณ์นี่เป็นกรณีการใช้งานสองสามกรณี:

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

ขอบคุณสำหรับความช่วยเหลือของคุณ!

แก้ไข

ฉันจะพยายามอธิบายปัญหาที่ฉันมีกับการใช้สื่อโสตทัศน์ การแสดงสิ่งที่โปร่งใสนั้นยาก แต่หวังว่านี่จะทำให้ปัญหาของฉันชัดเจนขึ้น:

ฉันมีไฟล์ PSD ที่มีหนึ่งเลเยอร์และเลเยอร์มาสก์ เลเยอร์สีมีลักษณะดังนี้:

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

เลเยอร์มาสก์หน้าตาเป็นแบบนี้:

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

ถ้าฉันส่งออกไฟล์ PSD นี้เป็น PNG ฉันจะได้รับสิ่งนี้:

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

(พื้นที่สีขาวมีความโปร่งใสแน่นอนพวกเขาเพียงแค่ดูขาวกับพื้นหลังสีขาว)

คุณอาจสงสัยว่าปัญหาคืออะไร นั่นมันถูกต้องแล้ว! ปัญหาก็คือข้อมูลสีที่เก็บในพิกเซลโปร่งใสเหล่านั้น การใช้เครื่องมือเพื่อแยกข้อมูลความทึบแสงออกจาก PNG ขณะที่ยังคงสภาพ RGB เอาไว้เราจะเห็นข้อมูลสีที่ Photoshop บันทึกไว้ในพิกเซลโปร่งใส:

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

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

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


การแสดงตัวอย่างสิ่งที่คุณกำลังประสบอยู่อาจมีประโยชน์มากกว่า สาเหตุหลักเนื่องจากไม่ควรมีข้อมูลสีใด ๆ ในส่วนที่โปร่งใสของ PNG คุณประหยัด PNG ได้อย่างไร คุณใช้ "บันทึกสำหรับเว็บ" และคุณได้ตรวจสอบ "ความโปร่งใส" แล้วหรือยัง? ฉันรู้ว่ามันฟังดูธรรมดา แต่ไม่แน่ใจว่าคุณได้รับผลลัพธ์อย่างไร
ErickP

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

แต่เมื่อคุณพูดว่า "ไม่ควรมีข้อมูลสีใด ๆ ในส่วนที่โปร่งใสของ PNG" ฉันต้องการให้มีข้อมูลสีในส่วนที่โปร่งใสของ PNG ฉันรู้ว่าฟังดูแปลก แต่มีแอปพลิเคชั่นบางอย่างเช่นทั้งสองที่ฉันได้กล่าวไว้ข้างต้น (และใช่ PNG สนับสนุนข้อมูลสีทั้งหมดในพื้นที่โปร่งใสของมันฉันใช้มันตลอดเวลาใน PNG ที่สร้างตามขั้นตอนปัญหาคือวิธีที่ Photoshop บันทึกพื้นที่โปร่งใสเป็น PNGs)
Walt D

1
@ DA01 ฉันไม่คิดว่ามันจะเป็นข้อผิดพลาดมากไปกว่าการเพิ่มประสิทธิภาพที่ Photoshop ทำ (PNGs ที่มีสีสม่ำเสมอจะใช้พื้นที่ดิสก์น้อยลง) ที่ทำลายกรณีการใช้งานเฉพาะของฉัน
Walt D

1
@ErickP ขอบคุณที่พยายามช่วยฉันขอบคุณจริงๆ :) ขอบคุณ GPU เป็นมาตรฐานสวยวันนี้และชนิดของการลดอัตราการสุ่ม (ที่รู้จักกันแก้ไข bilinear) งานนี้เหมือนกันทั่วทั้งหมดของพวกเขาดังนั้นสิ่งที่ฉันจะแก้ปัญหาในที่สุดก็พบว่าควรจะทำงานในระดับสากล
Walt D

คำตอบ:


10

ฉันพบทางออก! SuperPNGปลั๊กอินจะเก็บค่า RGB พิกเซลโปร่งใสตราบใดที่คุณปล่อยให้ "สะอาดใส" ตัวเลือกไม่ถูกตรวจสอบ


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