2012-12-16 40 views
5

Tôi đang cố gắng mở rộng hình ảnh đã được vẽ thành canvas. Đây là mã:Canvas HTML5, tỷ lệ hình ảnh sau khi vẽ nó

 var canvas = document.getElementById('splash-container'); 
     var context = canvas.getContext('2d'); 
     var imageObj = new Image(); 

     imageObj.onload = function() { 
     // draw image at its original size 
     context.drawImage(imageObj, 0, 0); 
     }; 
     imageObj.src = 'images/mine.jpeg'; 


     // Now let's scale the image. 
     // something like... 
     imageObj.scale(0.3, 0.3); 

Tôi nên làm gì?

Trả lời

17

Bạn đang suy nghĩ sai. Khi bạn đã vẽ hình ảnh lên canvas, nó không có mối quan hệ với đối tượng imageObj. Không có gì bạn làm với imageObj sẽ ảnh hưởng đến những gì đã được vẽ. Nếu bạn muốn mở rộng hình ảnh, làm trong drawImage function:

drawImage(imgObj, 0, 0, imgObj.width * 0.3, imgObj.height * 0.3) 

Nếu bạn muốn animate rộng hoặc đang tìm kiếm để đạt được một số hiệu ứng khác mà đòi hỏi bạn phải vẽ hình ảnh ở kích thước đầy đủ ban đầu bạn sẽ có trước tiên clear it trước khi vẽ hình ảnh thu nhỏ.

+0

Tôi tìm thấy một giải pháp sử dụng thư viện Kinetic và phương thức transitionTo() –

3

robertc gì nói là đúng, nhưng nếu bạn thực sự muốn mở rộng quy mô một hình ảnh trên một canvas sau vẽ nó đối với một số lý do nào, bạn chỉ có thể mở rộng toàn bộ vải bằng cách sử dụng CSS thuộc tính chiều rộng/chiều cao và đó sẽ mở rộng quy mô các hình ảnh mà không cần phải vẽ lại.

+0

Vâng, tôi không thể mở rộng toàn bộ canvas vì có các đối tượng khác trong đó, mà tôi không muốn mở rộng. Tôi muốn xuất hiện một biểu trưng trên màn hình giật gân, điều đó sẽ xoay và tự điều chỉnh kích thước ban đầu của nó. –

+2

Cảm ơn câu trả lời của bạn rất hữu ích cho tôi !! –

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