Tôi muốn tham gia nhiều canvases để tạo một hình ảnh. Vì vậy, có phương pháp nào để tách nhiều hơn một canvas thành toDataURL
để tạo một hình ảnh không?chuyển đổi nhiều canvas thành dataURL trong html5
Trả lời
thử ví dụ này hy vọng nó sẽ giúp xem here
//html block
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
</canvas>
<canvas id="myCanvas1" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<canvas id="Canvasimage" width="500" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
<img id="finalimage" width="500" height="100" style="border:1px solid #c3c3c3;"/>
//script block
function loadImages(sources, callback) {
var images = {};
var loadedImages = 0;
var numImages = 0;
// get num of sources
for (var src in sources) {
numImages++;
}
for (var src in sources) {
images[src] = new Image();
images[src].onload = function() {
if (++loadedImages >= numImages) {
callback(images);
}
};
images[src].src = sources[src];
}
}
window.onload = function (images) {
//Canvas first here
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.fillStyle = "#FF0000";
ctx.fillRect(0, 0, 200, 100);
//Canvas second here
var c1 = document.getElementById("myCanvas1");
var ctx1 = c1.getContext("2d");
ctx1.fillStyle = "#00FF00";
ctx1.fillRect(0, 0, 200, 100);
//Canvas final here.
var canvas = document.getElementById("Canvasimage");
var context = canvas.getContext("2d");
var sources = {
darthVader: c.toDataURL("image/png"),
yoda: c1.toDataURL("image/png")
};
loadImages(sources, function (images) {
context.drawImage(images.darthVader, 100, 30, 200, 137);
context.drawImage(images.yoda, 350, 55, 93, 104);
//finalimage here which has two canvas data
var finalimage = document.getElementById("finalimage");
finalimage.src = canvas.toDataURL("image/png");
});
};
không. có một canvas và nhiều hình ảnh. Tôi cần nhiều canvases –
@Rana Muhammad Usman cập nhật Trả lời plz xem. – Tamkeen
Có, phương pháp drawImage
trên bối cảnh hiển thị canvas 2d chấp nhận yếu tố canvas làm yếu tố hình ảnh. Vì vậy, tất cả các bạn phải làm là:
- Tạo một vải mới
- Nhận ngữ cảnh của nó
- Vẽ tất cả các bức tranh sơn dầu khác để nó với
drawImage
- Trích xuất hình ảnh cuối cùng từ vải mới này
tạo một hàm lấy nhiều đối số (các phần tử canvas), đặt chúng trên một canvas trống, sau đó trả về dataurl cho canvas mới tạo.
var getImadeData = function() {
var i = arguments.length,
tempCanvas = document.createElement("canvas"),
ctx = tempCanvas.getContext("2d");
while (i--) {
ctx.drawImage(arguments[i], 0, 0);
};
return tempCanvas.toDataURL();
};
Bây giờ, chỉ cần nạp hàm nhiều phần tử canvas bạn muốn đưa vào một dataurl như vậy.
var newData = getImageData(canvas1, canvas2, canvas3);
Trong ví dụ này, canvas cuối cùng được đặt trên canvas trống trước để đảm bảo đặt hàng các phần tử canvas của bạn một cách thích hợp.
vui lòng cung cấp một số giải thích cùng với mã. Bằng cách đó du khách trong tương lai sẽ biết những gì họ đang tìm kiếm và bạn có thể nhận được upvotes hơn cho những đóng góp của bạn –
Tôi thêm một số lời giải thích, nhưng nó thành thật cảm thấy một chút thừa. Có điều gì đặc biệt mà bạn cảm thấy cần chi tiết hơn không? – r11
- 1. Phương pháp chuyển đổi canvas HTML5 thành SVG?
- 2. Ảnh để chuyển đổi Canvas/HTML5
- 3. Chuyển đổi HTML5 canvas để yếu tố IMG
- 4. "Xóa" trong html5 canvas
- 5. Chuyển động jpeg trong html5 canvas
- 6. HTML5 canvas thay đổi kích thước thành parent
- 7. "Chuyển đổi" XHTML 1.0 Strict thành HTML5
- 8. Html5 Canvas Limitations
- 9. Tách trong canvas HTML5?
- 10. Animated GIF trong HTML5 canvas
- 11. HTML5, JavaScript và vẽ nhiều hình chữ nhật trong canvas
- 12. Chèn từ trong HTML5 Canvas
- 13. html5 canvas strokeStyle?
- 14. HTML5 canvas nhấp chuột kiện
- 15. HTML5 tạo ảnh nền canvas
- 16. HTML5 Canvas: Phóng to
- 17. HTML5 Canvas eraser
- 18. Thay đổi màu cho fillText() trên HTML5 <canvas>
- 19. Cách căn giữa canvas trong html5
- 20. html5 canvas hand cursor issues
- 21. HTML5 Canvas Creative Alpha-Blending
- 22. HTML5 lưu canvas vào tệp
- 23. Chuyển đổi ứng dụng Legacy ASP.NET thành MVC3 và HTML5
- 24. Chụp ảnh từ máy ảnh thành dạng hoặc html5 canvas
- 25. HTML5 canvas khung tiên tiến
- 26. Chuyển đổi video thành HTML5 ogg/ogv và mpg4
- 27. Overlay HTML5 canvas over image
- 28. Tải xuống tệp từ DataURL trong JavaScript
- 29. chờ animation với HTML5 Canvas
- 30. HTML5 canvas "đặt lại" fillStyle
Bạn có thể sao chép tất cả các bản vẽ của tranh vẽ thành một khung tạm thời lớn hơn và sau đó gọi 'toDataURL()' của phần sau. – Ammar
thnx @Ammar bạn có thể cung cấp cho tôi tài liệu tham khảo plz –
@Muhammad Usmar: Câu trả lời được cung cấp bởi 'bennedich' bên dưới là cách tiếp cận tương tự mà tôi đã nói đến. Sử dụng hàm 'drawImage()' của canvas. Đối với bất kỳ khó khăn hơn nữa cho chúng tôi biết. – Ammar