gpt4 book ai didi

javascript - Angular 6 - 无法在 Canvas 上动态添加文本

转载 作者:行者123 更新时间:2023-11-30 14:28:12 26 4
gpt4 key购买 nike

我已经创建了 Canvas 元素。一旦用户在键盘的帮助下添加了一些文本,点击完成按钮我想在 Canvas 上添加文本。我做了以下更改

<强>1。 image-home.html

<canvas  (drop)="drop(event)" (dragover)="allowDrop(event)" no-bounce width="400px" height="400" 
(touchstart)='handleStart($event)' (touchmove)='handleMove($event)'
[ngStyle]="{'background': '#fff url(' + selectedImage + ') no-repeat 0 0', 'background-size' : 'contain',
'background-position': 'center', 'background-size': '400px!important 400px!important'}" #canvas ></canvas>

<强>2。 image-home.component.ts

import { Component, ViewChild,  ElementRef} from '@angular/core';

@ViewChild('canvas') public canvas: ElementRef;

sendMessage(userData: string){
console.log('entered text', userData);
this.canvasElement = this.canvas.nativeElement;
let ctx = this.canvasElement.getContext('2d');
ctx.font = 'italic 18px Arial';
ctx.textAlign = 'center';
ctx. textBaseline = 'middle';
ctx.fillStyle = 'red'; // a color name or by using rgb/rgba/hex values
ctx.fillText('Hello World!', 150, 50); // text and position
//this.canvasElement.fillText(userData, 10, 50);
this.nativeKeyboard.hideMessenger(this.options);
}

SendMessage 函数将在单击键盘的完成按钮时被调用。我没有收到任何错误,但无法在 Canvas 上看到文本。

最佳答案

在纯 JS 实现中,您的代码工作正常:

const canvas = document.getElementById('test');
canvas.width = canvas.height = 100;
ctx = canvas.getContext('2d');
ctx.font = 'italic 18px Arial';
ctx.textAlign = 'center';
ctx. textBaseline = 'middle';
ctx.fillStyle = 'red';
ctx.fillText('Hello!', 50, 50);
  
<canvas id="test" style="border: 1px solid blue;" ></canvas>

我能看到的唯一问题是:
this.canvasElement = this.canvas.nativeElement;
那一定是没有得到正确的 Canvas

关于javascript - Angular 6 - 无法在 Canvas 上动态添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51612766/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com