Javascript 如何从画布前面的变量中写入文本?
我正在开发一款卡片制作应用程序。它背后的想法是有一个CSV文件,其中包含每张卡的数据,一个包含图像的文件夹,并在上传CSV文件后为我拥有的每个角色创建一张卡。到目前为止还不错,但我在画布前写文章时有点结巴 画布是通过重叠许多不同的图像创建的,但是文本出现在背景上,最终被其他图像完全覆盖。我要文字在前面 我在加载包含数据的CSV文件时触发所有操作,实际上我使用了一个“context.fillText”,但没有按照我希望的方式工作 如何将变量中的文本放在画布前面最后3个“context.fillText”中? 最后一个范围是有一个可以保存为图像的画布 这是我的代码Javascript 如何从画布前面的变量中写入文本?,javascript,jquery,html,canvas,Javascript,Jquery,Html,Canvas,我正在开发一款卡片制作应用程序。它背后的想法是有一个CSV文件,其中包含每张卡的数据,一个包含图像的文件夹,并在上传CSV文件后为我拥有的每个角色创建一张卡。到目前为止还不错,但我在画布前写文章时有点结巴 画布是通过重叠许多不同的图像创建的,但是文本出现在背景上,最终被其他图像完全覆盖。我要文字在前面 我在加载包含数据的CSV文件时触发所有操作,实际上我使用了一个“context.fillText”,但没有按照我希望的方式工作 如何将变量中的文本放在画布前面最后3个“context.fillTe
$(文档).ready(函数(){
函数loadImages(源、回调){
var图像={};
var loadedImages=0;
var numImages=0;
//获取源的数量
用于(源中的var src){
numImages++;
}
用于(源中的var src){
图像[src]=新图像();
图像[src].onload=function(){
如果(++LoadeImage>=numImages){
回调(图像);
}
};
图像[src].src=源[src];
}
}
var canvas=document.getElementById('myCanvas');
var context=canvas.getContext('2d');
document.getElementById('txtFileUpload')。addEventListener('change',upload,false);
功能上传(evt){
var file=evt.target.files[0];
var reader=new FileReader();
reader.readAsText(文件);
reader.onload=函数(事件){
var csvData=event.target.result;
帕帕·帕斯(csvData{
完成:功能(结果){
console.log(results.data);
var imgStelle;
var imgClan;
内生变种;
var numeroCarte=(results.data.length);
对于(var i=0;i我认为您可以使用.append()
并在.contenitoreCarte
中创建文本,甚至可以使用画布
用法太简单了,
文件如下:
如果您给我一个CSV示例,我可以通过完成代码提交更好的答案我认为您的问题在于您正在“所有图像已加载”回调中绘制图像,但文本是在运行此回调之前绘制的
请尝试以下方法:
loadImages(sources, function(images) {
context.drawImage(images.image1, 0, 0, 2220 , 3240);
// context.drawImage image2, 3, ...9,
context.drawImage(images.image10, 170, 2950, 130 ,170);
// Draw text here
context.font = "40pt Calibri";
context.fillText(nome, 20, 20);
context.fillText(potere, 20, 20);
context.fillText(bonus, 20, 20);
});
并在此处将var
替换为const
:
const nome = results.data[i][1];
const potere = results.data[i][6];
const bonus = results.data[i][7];
您能否提供一个CSV示例,以便我们可以试用您的代码?或者可以修改代码以使用一些预定义的值运行。CSV结构很简单,只是一大堆具有相同模式但不同值的行:ClanName、CardName、1,1、CardPower、cardbowns、fullname。您如何将文本放入新的html
中,并将其放置在使用CSS绘制画布?@Papooch,但您将失去“另存为图像”功能。@OP我得到了“未捕获引用错误:未定义Papa”
,您能正确地包括这一点吗?@Stratubas Papa是一个名为papaparse:)的外部库的js,这样我将无法将其另存为图像。@GianlucaFontana与中的工作方式不同“不画任何东西”或者仍然画在图像后面?@GianlucaFontana如果它画错了文本,我也不会感到惊讶…@GianlucaFontana尝试用var
替换const
,我在回答中补充道。先生,你破案了。非常感谢,真的!:)