2010-06-11 40 views

Trả lời

9

Bạn không cần phải không có chuyển đổi, chỉ cần sử dụng hình ảnh (hoặc mới bằng url hoặc bất kỳ một trong DOM) bởi

canvas.drawImage(image, dx, dy) 
canvas.drawImage(image, dx, dy, dw, dh) 
canvas.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh) 

(lấy từ here).

Xem hướng dẫn trên developer.mozilla.org.

+0

s/vải/bối cảnh –

+2

gì xảy ra nếu bạn muốn thao tác dữ liệu pixel của hình ảnh bằng vải? – ina

12

Dưới đây là một công cụ mà sẽ tạo ra mã JavaScript để vẽ hình ảnh trên vải: http://lab.abhinayrathore.com/img2canvas/

+2

Cảm ơn bạn đã thực sự trả lời câu hỏi của OP. Các câu trả lời khác trên trang này không liên quan. –

+1

Công cụ này thực hiện công việc, nhưng nó cũng thực sự không hiệu quả. Nó thực hiện fillRect cho mỗi pixel và không nhận ra các dòng hoặc hộp liên tục, ít hơn nhiều vòng tròn hoặc các hình dạng khác. –

1

Bạn có thể sử dụng các trang web liệt kê ở trên, nhưng ở đây là mã có liên quan:

function convertImage(canvas, callback) { 
var image = new Image(); 
image.onload = function(){ 
callback(image); 
} 
image.src = canvas.toDataURL("image/png"); 
} 

Ngoài ra, tôi đặt cùng một số working jsfiddle demo.

+1

Điều này chuyển đổi khung hình thành hình ảnh, nhưng câu hỏi là chuyển đổi hình ảnh thành canvas. –

0
 <!DOCTYPE HTML> 
<html> 
    <head> 
    <style> 
     body { 
     margin: 0px; 
     padding: 0px; 
     } 
    </style> 
    </head> 
    <body> 
    <canvas id="myCanvas" width="578" height="200"></canvas> 
    <script> 
     var canvas = document.getElementById('myCanvas'); 
     var context = canvas.getContext('2d'); 

     // draw cloud 
     context.beginPath(); 
     context.moveTo(170, 80); 
     context.bezierCurveTo(130, 100, 130, 150, 230, 150); 
     context.bezierCurveTo(250, 180, 320, 180, 340, 150); 
     context.bezierCurveTo(420, 150, 420, 120, 390, 100); 
     context.bezierCurveTo(430, 40, 370, 30, 340, 50); 
     context.bezierCurveTo(320, 5, 250, 20, 250, 50); 
     context.bezierCurveTo(200, 5, 150, 20, 170, 80); 
     context.closePath(); 
     context.lineWidth = 5; 
     context.fillStyle = '#8ED6FF'; 
     context.fill(); 
     context.strokeStyle = '#0000ff'; 
     context.stroke(); 

     // save canvas image as data url (png format by default) 
     var dataURL = canvas.toDataURL(); 
    </script> 
    </body> 
</html>  
Các vấn đề liên quan