javascript - 向图片中的base64字符串添加文本
问题描述
我有一个画布,可以在其中捕获签名(浏览器应用程序、javascript)。我在 base64 字符串中得到了这个签名,我可以下载它。这工作正常。现在我想在图片中添加一个文本(base64-string)。
在我的研究中,我遇到了不同的方法,比如水印,但这对我不起作用,我认为这并不复杂。是否有可能或简单的方法将文本添加到 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-string。我可以通过添加一些文本来修改它吗?
更新:
我现在有以下功能:
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);
我将现有的画布加载到新的画布中。
但是当我尝试执行此操作时,出现以下错误:
未捕获的类型错误:无法在“CanvasRenderingContext2D”上执行“drawImage”:提供的值不是类型“(CSSImageValue 或 HTMLImageElement 或 SVGImageElement 或 HTMLVideoElement 或 HTMLCanvasElement 或 ImageBitmap 或 OffscreenCanvas)”
解决方案
推荐阅读
- laravel - Flutter 和 Laravel API。上传文件。此路由不支持 GET 方法。支持的方法:POST
- javascript - 在 React 的 .map 迭代中对单个元素使用 onMouseEnter
- oracle - 当我通过 emplid 它运行但是当我通过 Campus_id 它需要无限时间
- modelica - 使用组件的内部变量时出错
- c - 从 sscanf 读取的数字为 0
- c++ - 有没有办法避免为 std::variant 类成员中的所有类型编写构造函数?
- drupal - 如何更新 hook_presave 上的实体翻译?
- python - 如何正确使用带有 C++ 的 tensorflow 从 YOLO 模型中获取输出?
- jquery - 使用 jQuery 删除和附加视口
- angular - 在材料表中搜索不适用于管道