2011-11-26 28 views
126

Tôi muốn biết những gì PorterDuff.Mode có nghĩa là trong đồ họa android.PorterDuff.Mode có nghĩa là gì trong đồ họa android. Nó làm gì?

Tôi biết rằng đây là chế độ chuyển .

Tôi cũng biết, rằng nó có các thuộc tính như DST_IN, Multiply, vv

+0

từ khám phá gần đây của tôi. nếu bạn có hình ảnh trùng lặp và cố gắng thay đổi bộ lọc màu của một trong số chúng, nó ảnh hưởng đến hình ảnh khác chồng lên nhau! – jonney

Trả lời

268

Dưới đây là một bài báo tuyệt vời với hình ảnh minh họa bởi một kỹ sư của Google:

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

PorterDuff được mô tả như một cách để kết hợp hình ảnh như thể chúng là "mảnh có hình dạng bất thường của các tông" overlayed trên lẫn nhau, cũng như lược đồ pha trộn các phần chồng chéo.

Cách tạo hình ảnh Android mặc định là PorterDuff.Mode.SRC_OVER, tương đương với việc vẽ hình ảnh/màu nguồn trên hình ảnh mục tiêu. Nói cách khác, nó thực hiện những gì bạn mong đợi và vẽ hình ảnh nguồn (ảnh bạn đang vẽ) lên trên hình ảnh đích (canvas) với hình ảnh đích hiển thị tới mức độ được xác định bởi alpha của hình ảnh nguồn.

PorterDuff infographic from the article

Bạn có thể sử dụng phím dưới đây để hiểu được đại số mà the Android docs sử dụng để mô tả các chế độ khác (xem the article cho một desription đầy đủ hơn với các điều khoản tương tự).

  • Sa Nguồn alpha
  • Sc Nguồn màu
  • Đà Destination alpha
  • Dc Destination màu

đâu alpha là một giá trị [0..1], và màu sắc được thay thế một lần mỗi ch annel (do đó, sử dụng công thức một lần cho mỗi màu đỏ, xanh lá cây và xanh dương)

Các giá trị kết quả được chỉ định như một cặp trong dấu ngoặc vuông như sau.

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

đâu alpha-valuecolor-value là công thức để tạo ra kết quả chanel alpha và mỗi chanel màu tương ứng.