2010-02-13 44 views
6

Tôi đang phát triển một ứng dụng cọ vẽ trong javascript bằng cách sử dụng processing.js Nó đang sử dụng đối tượng canvas. Tôi muốn giữ một hình ảnh ở nền của khung vẽ. Vẽ một cái gì đó ở phía trước. Và trong khi tiết kiệm, tôi chỉ cần lấy dữ liệu tiền cảnh.Có thể tạo canvas trong suốt

Để làm điều đó, chúng tôi cần phải làm cho đối tượng canvas trong suốt để hình nền hiển thị.

Tôi không thấy bất kỳ tùy chọn nào để làm cho khung trong suốt. Làm thế nào để làm điều đó?

+3

được trả lời dưới đây? – Ross

+1

Câu trả lời đúng cho điều này là của Jared. Tại sao? Bởi vì poster gốc cho biết anh ta cần nó được thực hiện với * ProcessingJS *, làm cho tất cả các phần tử canvas có nền màu xám là * mặc định *. Anh ấy muốn ghi đè hành vi mặc định này. – YOMorales

Trả lời

3
context.clearRect(0,0,width, height) 

là tất cả các bạn cần =)

Hãy nhớ rằng bạn có thể sử dụng phong cách CSS trên đối tượng canvas.

canvas.style.position = "absolute"; 
canvas.style.left = the x position of the div you're going over +"px"; 
canvas.style.top = the y position of the div you're going over + "px"; 
0

tại sao không đặt hình ảnh trong canvas và làm cho nét vẽ của bạn và lấp đầy trong suốt?

6

<canvas> là minh bạch theo mặc định.

Tôi đã thực hiện một bằng chứng của khái niệm có thể được tìm thấy ở đây:

http://irae.pro.br/lab/canvas_pie_countdown/

Tested chống lại IE6, IE7, IE8, Firefox 2, Firefox 3, Chrome và iPhone.

+2

Điều đó hoạt động khi sử dụng các thư viện canvas/API khác. Lưu ý rằng các poster ban đầu cho biết ông cần nó được thực hiện với * ProcessingJS *, mà làm cho tất cả các yếu tố canvas với nền màu xám như * mặc định *. Anh ấy muốn ghi đè hành vi mặc định này. Câu trả lời của Jared thực ra là câu trả lời đúng. – YOMorales

+0

Bạn chính xác. Tôi nhớ giải thích câu hỏi. –

+0

Không sao cả. Tôi cũng mắc lỗi thường xuyên. ;) – YOMorales

13

Thậm chí tốt hơn, ở phía trên cùng của PJS bạn chỉ cần đặt:

/* @pjs transparent=true; */ 

... và sau đó trong vòng lặp bốc thăm của bạn:

background(0, 0, 0, 0); 

thì đấy!

+4

Câu trả lời đúng khi sử dụng * ProcessingJS *. Nó cũng giải quyết được vấn đề của tôi. – YOMorales

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