ไทย

รูปภาพและภาพถ่าย · โปรแกรมแปลงรูปภาพและคอมเพรสเซอร์

จะเกิดอะไรขึ้นกับความโปร่งใสเมื่อคุณแปลง PNG เป็น JPEG

· มันทำงานอย่างไร

รูปแบบภาพ ความโปร่งใส ผ้าใบ

ตารางหมากรุกโปร่งใสกลายเป็นด้านแข็งด้านหลังภาพเงาของผลิตภัณฑ์
ภาพประกอบเวกเตอร์ต้นฉบับ ToolAcre

JPEG ไม่มีช่องอัลฟ่า ดังนั้นพิกเซลโปร่งใสจึงต้องกลายเป็นอะไรบางอย่างระหว่างการแปลง และกฎของเบราว์เซอร์คือการรวมพิกเซลเหล่านั้นลงบนสีดำ โพสต์นี้จะอธิบายอัลฟ่า ขั้นตอนการผสม และวิธีการรักษาความโปร่งใสโดยเลือก WebP หรือ PNG แทน

การตัดผลิตภัณฑ์ที่กลายเป็นสี่เหลี่ยมสีดำ — ผลลัพธ์การแปลงที่ทำให้เกือบทุกคนประหลาดใจในครั้งแรก

การตัดออกผลิตภัณฑ์อาจกลับมาจาก Conversion JPEG ล้อมรอบด้วยสี่เหลี่ยมทึบ ในเครื่องมือนี้ สี่เหลี่ยมไม่ได้ถูกบังคับให้เป็นสีดำ: แผนจะมีสีพื้นหลัง แผงที่โฟกัสจะเริ่มต้นเป็นสีขาว และ `renderPlan` เติมเต็มผืนผ้าใบทั้งหมดก่อนที่จะวาดบิตแมป ผลลัพธ์จึงสะท้อนถึงตัวเลือกของผู้ใช้ที่มองเห็นได้ แทนที่จะเป็นทางเลือกสำรองของเบราว์เซอร์ที่ไม่มีเอกสาร

สร้างปัญหาซ้ำด้วยสำเนาแหล่งที่มาและจดบันทึกด้านที่เลือก หากบล็อกสีดำปรากฏขึ้นหลังจากเลือกสีขาว ให้เปรียบเทียบไฟล์ที่ดาวน์โหลดจริงกับขั้นตอนการประมวลผลในภายหลังก่อนที่จะตำหนิการแปลง คำเตือนของ ToolAcre รวมถึงสีที่อยู่ด้านหลังพิกเซลโปร่งใส ทำให้แผนสามารถตรวจสอบได้ก่อนที่ตัวเข้ารหัส JPEG จะได้รับแคนวาส

สี่เหลี่ยมทึบที่น่าประหลาดใจอาจเป็นแบบด้านก็ได้ ToolAcre ค่าเริ่มต้นเป็นสีขาวแทนที่จะเป็นสีดำ

ความโปร่งใสจะแสดงในพื้นผิวพิกเซลที่ถอดรหัสเป็นความทึบควบคู่ไปกับสี ตารางรูปแบบของผลิตภัณฑ์บันทึกว่าเอาต์พุต PNG และ WebP รองรับอัลฟ่า ในขณะที่ JPEG ไม่รองรับ นั่นคือคำสั่งความสามารถในการเข้ารหัส: ตัวถอดรหัสอินพุตยอมรับ GIF เช่นกัน แต่ GIF เป็นแบบถอดรหัสเท่านั้นและมีส่วนสนับสนุนเพียงเฟรมภาพนิ่งเดียวเท่านั้น การสนับสนุนการอ่านและการเขียนต้องไม่ยุบลงในรายการเดียว

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

เหตุใด JPEG ไม่สามารถรักษาความโปร่งใสได้ — รูปแบบที่ออกแบบมาสำหรับภาพถ่ายที่ไม่มีแนวคิดว่า 'ไม่มีอะไรที่นี่'

เอาต์พุต JPEG ไม่มีช่องอัลฟาในรูปแบบข้อเท็จจริงของ ToolAcre ดังนั้นเอาต์พุตที่สมบูรณ์จะต้องมีสีในทุกพิกเซล แผนการแปลงจะให้สีดังกล่าว และผู้เรนเดอร์จะทาสีให้ทั่วปลายทางก่อนที่จะวาดพิกเซลต้นทางใดๆ ลำดับนี้ทำให้มั่นใจได้ว่าบริเวณที่โปร่งใสทั้งหมดจะกลายเป็นด้านและขอบเขตที่โปร่งใสบางส่วนผสมผสานกันผ่านองค์ประกอบผ้าใบปกติ

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

เบราว์เซอร์กฎการผสมจะปฏิบัติตาม - ขอบเขตโปร่งใสจะถูกผสมบนพื้นหลังสีดำทึบก่อนการเข้ารหัส JPEG ตามข้อกำหนด

สมุดงานอธิบายว่าการผสมสีดำเป็นกฎข้อกำหนดของเบราว์เซอร์ แต่การใช้งานจะป้องกันการเติมที่ขึ้นอยู่กับเบราว์เซอร์โดยไม่ได้ตั้งใจอย่างชัดเจน `fillRect` ใช้ `plan.background` และแผงจะแสดงอินพุตสีเฉพาะเมื่อรูปแบบที่เลือกไม่มีอัลฟ่า การแก้ไขมีความสำคัญ: การบอกผู้ใช้ว่าสีดำเป็นสิ่งที่หลีกเลี่ยงไม่ได้จะเป็นการซ่อนการควบคุมที่สร้างขึ้นโดยเฉพาะเพื่อหลีกเลี่ยงความประหลาดใจนั้น

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

ToolAcre เติมความโปร่งใสด้วยพื้นหลังที่ผู้ใช้เลือกก่อนการเข้ารหัส JPEG

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

ToolAcre จะไม่เปิดเผยบัฟเฟอร์อัลฟ่าแบบคูณล่วงหน้าหรือรับประกันการแสดงตัวถอดรหัสระดับต่ำโดยเฉพาะ ดังนั้นการตรวจสอบตามหลักฐานจึงเป็นภาพ ส่งออกโลโก้เดียวกันโดยเทียบกับด้านที่แตกต่างกันอย่างมากสองด้าน และเปรียบเทียบรูปร่างในขนาดดั้งเดิม หากเนื้อหาต้องทำงานบนทั้งสองพื้นหลัง ให้คงอัลฟ่าไว้ แทนที่จะค้นหา JPEG edge ที่ประนีประนอมเพียงรายการเดียว

ควรตรวจสอบผลลัพธ์ของขอบนุ่มกับด้านที่เลือก ข้อมูลภายในของการคูณล่วงหน้าจะไม่ถูกเปิดเผย

ใช้โลโก้โปร่งใสพร้อมเงาอ่อนๆ ขั้นแรกเลือกสีขาวและส่งออก JPEG; จากนั้นเลือกสีเขียวเข้มและส่งออก JPEG อีกอัน ช่องโปร่งใสควรกลายเป็นสีที่เลือกแต่ละสี ในขณะที่เงากลืนเข้าไป ส่งออกสำเนา PNG และ WebP ขนาดไม่เปลี่ยนแปลงเช่นกัน จากนั้นวางทั้งบล็อกทดสอบแสงและความมืดในโปรแกรมดูภาพ

เส้นทาง PNG ใช้ตัวเข้ารหัสแบบไม่สูญเสียข้อมูลและรักษาความโปร่งใส เส้นทาง WebP จะคงความโปร่งใสแต่ยังคงสูญเสียไปตามข้อมูลรูปแบบของแอปพลิเคชัน แม้ว่าจะเป็นคุณภาพ 100 ก็ตาม สำเนา JPEG จำเป็นต้องทึบแสง ไม่มีการยืนยันการจัดอันดับขนาดไฟล์คงที่เนื่องจากเบราว์เซอร์วัดไบต์ที่เข้ารหัสจริงและเนื้อหาจะกำหนดผลลัพธ์

สิ่งที่ไม่ครอบคลุมถึง ได้แก่ การเลือกสีพื้นหลังที่กำหนดเอง ความโปร่งใสของภาพเคลื่อนไหว และมาสก์สไตล์ 1 บิต GIF

เวิร์กโฟลว์นี้ครอบคลุมสีพื้นหลังแบบกำหนดเอง—โครงร่างดั้งเดิมไม่รวมสีดังกล่าวอย่างไม่ถูกต้อง จะไม่เก็บภาพเคลื่อนไหว GIF ไม่ให้เอาต์พุต GIF หรือนำเสนอโปรแกรมแก้ไขมาสก์หนึ่งบิตแบบพิเศษ อินพุต GIF ถูกถอดรหัสเป็นเฟรมเดียว และรับกฎรูปแบบปลายทางเดียวกันกับอินพุตอื่นๆ ที่ยอมรับ

นอกจากนี้ยังไม่ลบพื้นหลังสีที่มีอยู่แล้วออกจากแหล่งทึบแสง การเก็บรักษาอัลฟ่าจะช่วยได้ก็ต่อเมื่อความโปร่งใสไปถึงตัวถอดรหัสเท่านั้น หากแหล่งที่มามีสี่เหลี่ยมสีขาวอยู่แล้ว การส่งออกไปยัง PNG จะไม่สามารถสร้างความโปร่งใสที่ขาดหายไปขึ้นมาใหม่ได้ งานดังกล่าวจำเป็นต้องมีการลบพื้นหลังโดยเจตนาในตัวแก้ไข ไม่ใช่การแปลงรูปแบบ

สีพื้นหลังที่กำหนดเองถูกนำมาใช้และอยู่ในขอบเขต

ความโปร่งใสยังคงอยู่เฉพาะในปลายทางที่สามารถเป็นตัวแทนได้เท่านั้น ToolAcre ทำให้ทางเลือกอื่นชัดเจน: JPEG ได้รับการเคลือบที่เลือก ในขณะที่ PNG และ WebP คงอัลฟ่าไว้ภายใต้พฤติกรรมของตัวเข้ารหัสที่บันทึกไว้ อ่านคำเตือนก่อนการแปลงเนื่องจากจะอธิบายการตัดสินใจของพิกเซลแบบทางเดียว ไม่ใช่การตั้งค่าการแสดงผลแบบพลิกกลับได้

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