2012-12-19 24 views
9

Xuất phát từ nền thiết kế đồ họa, tôi biết cách gian lận để tạo hiệu ứng additive color. Cùng một giải pháp cơ bản được đề xuất trong another post on here.Sử dụng SVG để trộn màu phụ gia (trộn phụ gia)

Bài đăng ở trên đề cập đến các tệp trong suốt nhưng khái niệm giống nhau. Hiệu ứng cơ bản tôi muốn tạo giống như một hiệu ứng pictured here.

Tôi muốn làm điều đó trong SVG để nó có thể mở rộng và khi tôi nói về một chủ đề cụ thể (hãy nói chủ đề là 'xanh') tôi có thể phóng to phần đồ họa và các vùng chồng chéo sẽ vẫn hiển thị chính xác.

Những bài viết dường như nhận được khá gần:

Nhưng không ai trong số các thỏa thuận trên với SVG vì vậy hãy để tôi cung cấp cho nó một whirl.

+0

Tôi chỉ cần đăng nhập và thấy câu trả lời bên dưới, lướt qua nó trông giống như những gì tôi đang nghĩ đến ... Nhưng tôi đã tạo một hình ảnh trong Adobe Illustrator nhưng nhận ra sự minh bạch thường xuyên sẽ cho tôi màu phụ gia. với màu sắc hoàn toàn mờ đục; Tôi không nghĩ rằng sẽ giúp ... sẽ là một 3 lớp (3 chồng chéo nhẫn) đồ họa với tính minh bạch thường xuyên gửi đến một công việc fiddle? –

Trả lời

2

Phiên bản này thay thế phiên bản cũ hơn không thực sự là trình duyệt chéo. Tôi nhận ra rằng tôi không cần hình dạng riêng biệt cho các vòng tròn khác nhau, tôi có thể sao chép, định vị lại và đổi màu hình dạng ban đầu trong bộ lọc.

<svg x="0px" y="0px" width="600px" height="600px" viewbox="0 0 600 600"> 

<defs> 
<filter id="B4" x="-150%" width="400%" y="-150%" height="400%"> 
    <feOffset in="SourceGraphic" result="pre-red" dx="-70" dy="-120"/> 
    <feColorMatrix in="pre-red" type="matrix" result="red" values="0 0 0 0 1 
                0 0 0 0 0 
                0 0 0 0 0 
                0 0 0 1 0"/> 

    <feOffset in="SourceGraphic" result="pre-blue" dx="70" dy="-120"/> 
    <feColorMatrix in="pre-blue" type="matrix" result="blue" values="0 0 0 0 0 
                0 0 0 0 0 
                0 0 0 0 1 
                0 0 0 1 0"/> 
    <feBlend mode="screen" in="red" in2="blue" result="main"/> 
    <feBlend mode="screen" in="main" in2="SourceGraphic"/> 
</filter> 
</defs> 

    <circle filter="url(#B4)" cx="200" cy="250" r="100" fill="#00FF00" /> 

</svg> 
+0

Không hoạt động trên Mozilla và Webkit chắc chắn là một bộ ngắt giao dịch. Bạn có thể chỉ cho tôi theo hướng của nhiều thông tin hơn (hoặc giải thích thêm một chút) liên quan đến hiệu ứng "trong bộ lọc" (ví dụ đầu tiên)? Nhìn vào nó, tôi cảm thấy như tôi về cơ bản có được nó nhưng tôi không thấy bất cứ điều gì mà sẽ tạo ra màu vàng hoặc màu lục lam (tôi giả định 'cuối cùng' là màu trắng) cũng không thấy một đột quỵ đen (là vì không có chiều rộng được giao cho đột quỵ?). Cảm ơn. –

+0

Tôi đã thấy tài liệu tham khảo 'bật nền' và ghi chú, tôi sẽ quay lại và đọc chúng cẩn thận hơn, cảm ơn. –

8

Ngay bây giờ, bạn có thể thực hiện việc này với SVG filters. Vì sở thích của bạn nằm trong màu phối trộn, bạn có thể quan tâm đến việc nghiên cứu các bộ lọc nguyên thủy sau: feBlend, feComposite, feColorMatrixfeComponentTransfer.

Nếu bạn muốn tìm hiểu cách dễ dàng (Inkscape), hãy xem this blogpost. Tôi cũng có thể khuyên bạn nên đọc số Inkscape book và đặc biệt cách thực hiện custom filters. Here's one page hiển thị feBlend với các kết quả tương tự như trong ví dụ về hiệu ứng cơ bản của bạn.

Cập nhật:here's the relevant svg file từ cuốn sách inkscape, nó sẽ giống như hình dưới đây trong các trình duyệt có hỗ trợ bộ lọc svg (và đầu vào BackgroundImage lọc, lưu ý rằng Gecko không hỗ trợ BackgroundImageenable-background). feBlend variations

+0

Tôi chưa bao giờ nghe nói về những bộ lọc này như một phần của tiêu chuẩn! Thoạt nhìn tôi nghĩ 'fe' có thể là tiền tố của nhà cung cấp, cậu bé đã sai. Cảm ơn. –

+1

Vấn đề với những ví dụ này là chúng dựa vào "nền tảng cho phép" - không hoạt động trên webkit hoặc mozilla ngay bây giờ (không biết về opera). Nếu bạn định làm điều này bằng cách sử dụng bộ lọc, tôi nghĩ bạn phải kéo hình ảnh (hoặc tạo vòng tròn màu bằng hiệu ứng ánh sáng) –

+0

Ví dụ có thể sử dụng 'enable-background', nhưng có thể tránh sử dụng nó. Có, Opera đã hỗ trợ cho 'bật nền 'trong một thời gian dài. IIRC IE10 cũng hỗ trợ 'enable-background'. –

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