2011-02-08 30 views
5

Tôi đã xem một chút và nghĩ rằng câu trả lời cho câu hỏi của tôi là "không", nhưng ở đây:Đặt blendmode để vẽ nét?

Với Javascript và thẻ canvas, tôi có thể vẽ các đường được pha trộn độc đáo với stroke().

Đây là vô số niềm vui, nhưng tôi muốn thực hiện thêm một bước nữa bằng cách đặt blendmode cho đột quỵ.
ví dụ: có vẻ như nó đang sử dụng src * (alpha) + dst * (1 - alpha), và tôi muốn một cái gì đó giống như src + dst, để có được sự pha trộn phụ gia.

Trang này: http://www.andersriggelsen.dk/OpenGL dường như đang pha trộn pixel-by-pixel, mà tôi thực sự muốn tránh.

Trả lời

6

duy nhất "chế độ pha trộn" được hỗ trợ natively bởi HTML5 Canvas bối cảnh là những Global Composite Operations:

  • source-atop
  • source-in
  • source-out
  • source-over
  • destination-atop
  • destination-in
  • destination-out
  • destination-over
  • lighter
  • darker (không còn trong spec)
  • xor
  • copy

Xem this link cho một ví dụ tương tác hoạt hình tuyệt vời của các chế độ. Chế độ thêm/màn hình mà bạn muốn, tuy nhiên, không nằm trong số đó.

Nếu chức năng này quan trọng đối với bạn, tôi đã viết free context-blender library để kết hợp hai canvas (hoặc vùng của chúng) với nhau bằng chế độ hòa trộn kiểu Photoshop. Như bạn nói, nội bộ của điều này (nhất thiết) thực hiện các hoạt động pixel-by-pixel. Nó gần như không nhanh như chế độ ghép gốc, nhưng nó cũng không chậm. Nó vẫn cho phép bạn thực hiện hành trình gốc và điền vào một canvas (thường là offscreen), và sau đó kết hợp canvas offscreen với nhau.

Và có, trình tạo ngữ cảnh hỗ trợ cả chế độ hòa trộn 'màn hình' và 'thêm'. :)

+0

wow, câu trả lời tuyệt vời, cảm ơn. –

+1

bạn nói đúng - các hoạt động được cung cấp không thực sự cung cấp "Thêm", tôi có thể điều tra "Nhẹ hơn" để xem liệu nó có đủ gần với những gì tôi đang theo dõi hay không. .. Ngọt ! nó gần rồi! tôi cũng sẽ xem thư viện máy xay của bạn.nó có thể là sự kết hợp của cả hai có thể có được cả tốc độ và độ chính xác đủ để tôi sử dụng. cảm ơn một lần nữa. –

+1

Không thể tin được rằng không có chế độ hòa trộn phụ cho canvas. Đơn giản nhất của tất cả các chế độ pha trộn để thực hiện và rất quan trọng để có! –

Các vấn đề liên quan