Я хочу присоединиться к нескольким холстам, чтобы сделать одно изображение. Так есть ли какой-либо метод для скрытия более чем одного холста до toDataURL
, чтобы сделать одно изображение?конвертировать несколько холстов в dataURL в html5
ответ
попробуйте этот пример, надеется, что это поможет увидеть 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");
});
};
№. есть один холст и несколько изображений. Мне нужно несколько холстов –
@ Рана Мухаммад Усман обновленный ответ plz see. – Tamkeen
Да, метод drawImage
на холсте 2-го контекста рендеринга принимает элементы холста в качестве элементов изображения. Так что все, что вам нужно сделать, это:
- Создать новый холст
- Получить его контекст
- Нарисуйте все другие холсты к нему с
drawImage
- Extract окончательного изображения этого нового холста
создайте функцию, которая принимает несколько аргументов (элементы холста), помещает их на один пустой холст, а затем возвращает dataurl для вновь созданного холста.
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();
};
Теперь просто подайте функцию нескольких элементов холста, которые вы хотите поместить в один dataurl, как это.
var newData = getImageData(canvas1, canvas2, canvas3);
В этом примере, последний холст помещается на пустой холст первый поэтому убедитесь, что заказать элементы холста соответствующим образом.
, пожалуйста, предоставьте пояснения вместе с кодом. Таким образом, будущие посетители узнают, что они ищут, и вы можете получить больше голосов для своих вкладов. –
Я добавил несколько объяснений, но, честно говоря, это немного лишнее. Было ли что-то особенное, что вам было нужно больше деталей? – r11
- 1. HTML5 несколько холстов на странице
- 2. html5 несколько холстов не пересекаются
- 3. Как конвертировать изображения в dataurl
- 4. Как связать несколько холстов html5 с div
- 5. Несколько холстов HTML5 на одной странице
- 6. HTML5 несколько холстов на одной странице
- 7. Штабелирование нескольких холстов в HTML5
- 8. Несколько холстов в виде слоев
- 9. Несколько холстов в пикселях
- 10. Несколько холстов против одиночных холстов?
- 11. Печать слоистых html5 холстов
- 12. fabricjs несколько холстов handeling
- 13. Сделать несколько холстов или наложений на одном холсте html5
- 14. Ember 1.13: несколько холстов
- 15. Несколько холстов, многоразовые градиенты
- 16. Объединить несколько холстов и загрузить как изображение
- 17. Java - Показать несколько холстов в контейнере
- 18. Как добавить одну кнопку в несколько холстов?
- 19. JME 3 + Качели, несколько холстов
- 20. Несколько холстов не рисуют изображение
- 21. html5-canvas: Преобразование файла изображения в DataURL throws Uncaught TypeError
- 22. Несколько наложений HTML5 наложения
- 23. Как конвертировать flash в html5?
- 24. Загруженные многострочные изображения в холсте конвертировать в одно изображение (Html5)
- 25. Использование DataURL в VB.NET
- 26. Как установить несколько холстов в программе просмотра прокрутки в wpf?
- 27. Загрузка нескольких изображений на несколько холстов
- 28. как рисовать несколько холстов на одной странице?
- 29. Несколько холстов соединений на том же рисунке
- 30. Опенседрагон изображение перетащить на несколько холстов
Вы можете скопировать все рисунки холстов в более крупный временный холст, а затем вызвать 'toDataURL()' из более позднего. – Ammar
thnx @Ammar вы можете предоставить мне ссылку plz –
@Muhammad Usmar: Ответ, предоставленный 'bennedich' ниже, - это тот же подход, о котором я говорил. Используйте 'drawImage()' функцию холста. Для любых дальнейших трудностей дайте нам знать. – Ammar