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