2010-05-26 40 views
13

Tôi đang nhắm mục tiêu đến google chrome. Có thể vẽ hình ảnh trong suốt trên canvas không? Bằng cách trong suốt, tôi có nghĩa là vẽ toàn bộ hình ảnh ở mức độ mờ đục 50%.Cách vẽ hình ảnh trong suốt bằng phần tử canvas html5

+2

Bạn có muốn khung hình trong suốt để bạn có thể đặt nó lên các phần tử khác không? – Justin

+1

Không, không thể. Xem câu trả lời này: http://stackoverflow.com/questions/2359537/how-to-change-the-opacity-alpha-transparency-of-an-element-in-a-canvas-element – Intelekshual

+0

Justin, không, tôi muốn vẽ hình bán trong suốt lên trên phần tử canvas khác. Tôi không quan tâm đến việc làm cho toàn bộ khung hình trong suốt. Intelekshual, thiết lập bối cảnh.globalAlpha hiệu ứng tiếp theo context.drawImages ít nhất trong Chrome. –

Trả lời

13

Phần tử canvas có thuộc tính alpha chung cho phép bạn áp dụng tính minh bạch một phần cho bất kỳ thứ gì bạn vẽ.

+0

Ít nhất là trong phiên bản chrome 4.1.249.1045 nó hoạt động. –

+0

@Mr. Bell: +1 với Chrome cho điều đó. –

+0

Điều này làm việc cho tôi. +1 – dariopy

4

Có thể nếu bạn lặp lại thông qua dữ liệu hình ảnh của canvas và đặt giá trị alpha theo cách thủ công, sau đó xuất hình ảnh trong suốt bằng phương thức canvas.toDataURL và chèn hình ảnh đó vào canvas khác.

+0

Bạn không cần phải gọi đếnDataURL nếu bạn muốn vẽ một khung hình khác, 'drawImage' chấp nhận canvas là imageSource. – Kaiido

16

Bạn có thể làm điều này bằng cách sử dụng tài sản globalAlpha, như thế này:

<!DOCTYPE HTML> 
<html> 
    <body> 
     <canvas height="100" width="100" id="myCanvas"></canvas> 
     <script> 
      var canvas = document.getElementById("myCanvas"); 
      var context = canvas.getContext("2d"); 
      context.globalAlpha = 0.5; 
      var myImage = new Image(); 
      myImage.src = "someImage.jpg"; 
      myImage.onload = function() 
      { 
       context.drawImage(myImage, 0, 0, 100, 100); 
      }; 
     </script> 
    </body> 
</html> 

Và có, nó không làm việc với hình ảnh. Đã xác minh với IE 9, FF 5, Safari 5 và Chrome 12 trên Win 7.

+0

'globalAlpha' sẽ không hoạt động đối với hình ảnh được vẽ bằng' drawImage' trong Firefox 30+: https://bugzilla.mozilla.org/show_bug.cgi?id=1028288 –

+0

@ Derek, lỗi này chỉ liên quan đến hình ảnh svg. – Kaiido

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