PorterDuff.Mode หมายถึงอะไรใน Android กราฟิกมันทำอะไร?


142

ฉันต้องการทราบว่าPorterDuff.Mode มีความหมายอย่างไรในกราฟิกแอนดรอยด์

ฉันรู้ว่ามันเป็นโหมดการถ่ายโอน

ฉันก็รู้ว่ามันมีคุณสมบัติเช่น DST_IN, ทวีคูณเป็นต้น


จากการค้นพบล่าสุดของฉัน หากคุณมีภาพซ้อนทับกันและลองเปลี่ยนฟิลเตอร์สีของภาพใดภาพหนึ่งมันจะทำให้รูปภาพอื่นที่ซ้อนทับมันเสียหาย
Jonathan

คำตอบ:


321

นี่คือบทความที่ยอดเยี่ยมพร้อมภาพประกอบโดยวิศวกรของ Google:

http://ssp.impulsetrain.com/porterduff.html

PorterDuff อธิบายว่าเป็นวิธีการรวมภาพราวกับว่าพวกเขาเป็น "ชิ้นส่วนที่มีรูปร่างผิดปกติของกระดาษแข็ง" ซ้อนทับกันเช่นเดียวกับรูปแบบการผสมส่วนที่ทับซ้อนกัน

วิธีเริ่มต้นในการเขียนภาพ Android คือPorterDuff.Mode.SRC_OVERซึ่งเท่ากับการวาดอิมเมจ / สีต้นฉบับเหนือรูปภาพเป้าหมาย กล่าวอีกนัยหนึ่งคือทำในสิ่งที่คุณคาดหวังและดึงภาพต้นฉบับ (ภาพที่คุณวาด) ที่ด้านบนของภาพปลายทาง (ผ้าใบ) โดยมีภาพปลายทางที่แสดงถึงระดับที่กำหนดโดยอัลฟาของภาพต้นฉบับ

PorterDuff อินโฟกราฟิกจากบทความ

คุณสามารถใช้ปุ่มด้านล่างเพื่อทำความเข้าใจพีชคณิตที่เอกสาร Androidใช้เพื่ออธิบายโหมดอื่น ๆ (ดูบทความสำหรับ desription ฟูลเลอร์ด้วยคำที่คล้ายกัน)

  • สาอัลฟ่า
  • สีแหล่งที่มาของSc
  • ดาอัลฟาปลายทาง
  • สีปลายทางDc

โดยที่ alpha คือค่า[0..1]และสีจะถูกแทนที่หนึ่งครั้งต่อช่องสัญญาณ (ดังนั้นให้ใช้สูตรหนึ่งครั้งสำหรับแต่ละสีแดงสีเขียวและสีน้ำเงิน)

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

[<alpha-value>,<color-value>]

ที่ไหนalpha-valueและcolor-valueเป็นสูตรสำหรับการสร้างผลชาแนลอัลฟาและแต่ละสีชาแนลตามลำดับ


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