PorterDuff.Mode có nghĩa là gì trong đồ họa Android. Nó làm gì?


142

Tôi muốn biết PorterDuff.Mode có nghĩa là gì trong đồ họa Android.

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

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


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

Câu trả lời:


321

Đây là một bài viết tuyệt vời với hình minh họa của một kỹ sư Google:

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

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

Cách sáng tác hình ảnh mặc định của Android 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 đích. 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 (hình bạn đang vẽ) lên trên hình ảnh đích (khung vẽ) với hình ảnh đích hiển thị ở mức độ được xác định bởi alpha của hình ảnh nguồn.

Infographic PorterDuff từ bài viết

Bạn có thể sử dụng khóa bên dưới để hiểu đại số mà các tài liệu Android sử dụng để mô tả các chế độ khác (xem bài viết để biết cách giải mã đầy đủ hơn với các thuật ngữ tương tự).

  • Nguồn Sa
  • Sc Nguồn màu
  • Đà Destination alpha
  • Màu đích của Dc

Trong đó alpha là một giá trị [0..1]và màu được thay thế một lần trên mỗi kênh (vì vậy hãy sử dụng công thức một lần cho mỗi màu đỏ, lục và lam)

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

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

Trường hợp alpha-valuecolor-valuelà công thức để tạo ra alpha chanel kết quả và mỗi chanel màu tương ứng.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.