我有一个画布,我在其中捕获了签名(浏览器应用程序,javascript)。我在base64字符串中得到了这个signatur,我可以下载它。一切正常。现在我想在图片中添加文本(base64字符串)。
在我的研究中,我遇到了诸如水印之类的不同方法,但这对我没有用,我认为这几乎没有什么复杂性。是否有可能或简单的方法向base64字符串添加文本?
downloadpic: function () {
var sign = this.getView().byId("Signature");
var imagetxtb64 = sign.getSigAsJpeg();
var image = new Image();
var element = document.createElement('a');
image.src = imagetxtb64;
element.setAttribute('href', image.src);
element.setAttribute('download', 'image');
element.style.display = 'none';
element.click();
}
在imagetxtb64
变量中是base64字符串。我可以通过在其中添加一些文字来对其进行修改吗?
我现在具有以下功能:
downloadtext: function () {
var canvas = document.createElement("canvas");
var sign = this.getView().byId("Signature");
var imagetxtb64 = sign.getSigAsJpeg();
var ctx = canvas.getContext('2d');
ctx.drawImage(imagetxtb64, 0, 0);
var randomtxt = "Random Text";
ctx.font = "30px Arial";
ctx.strokeText(randomtxt, 10, 50);
var dataURL = canvas.toDataURL();
console.log(dataURL);
var image = new Image();
var element = document.createElement('a');
image.src = dataURL;
element.setAttribute('href', image.src);
element.setAttribute('download', 'image');
element.style.display = 'none';
element.click();
},
我猜用ctx.drawImage(imagetxtb64, 0, 0);
我将现有画布加载到新画布中。
但是当我尝试执行此操作时,出现以下错误:
未捕获的TypeError:无法在'CanvasRenderingContext2D'上执行'drawImage':提供的值不是'(CSSImageValue或HTMLImageElement或SVGImageElement或HTMLVideoElement或HTMLCanvasElement或ImageBitmap或OffscreenCanvas)类型的值