我有一些 Konva Text 节点,其fill
属性设置为黑色并stroke
设置为其他颜色。在我的画布中,它看起来符合预期。当我将画布转换为 base64 图像以将其作为图像文件下载时,就会出现问题 - 在这种情况下,下载的图像如下面的屏幕截图所示:
(画布在左边,右边是下载的图像)
如您所见,笔触颜色也应用于文本自身的颜色。
我创建了一个 Codesandbox示例,其中的 Text 节点具有与我的环境中相同的属性,以下是该节点的创建方式:
const text = new Konva.Text({
x: 26.330053300533024,
y: 128,
text: "Add a body text",
defaultText: "Add a body text",
fontSize: 22,
fontFamily: "Montserrat",
draggable: true,
name: "text",
fontStyle: "300",
id: "textkgrsl68w",
is_settings: true,
wrap: "word",
padding: 5,
fill: "black",
opacity: 1,
isPremium: false,
width: 183.5,
visible: true,
rotation: 0,
scaleX: 1,
scaleY: 1,
offsetX: 0,
offsetY: 0,
skewX: 0,
skewY: 0,
stroke: "rgba(255,0,0,1)",
strokeWidth: 3.75
});
如您所见,它具有相同(不正确)的外观 - 没有内联颜色。我fontSize
在 Codesandbox 中玩过,当我将其设置为非常大的值(如100
)时,文本的内联颜色变得可见。我认为这可能是一些ratio
问题,但正如我们在屏幕截图中看到的那样,画布和下载图像中的文本大小相似。
如何解决这个问题,也许还应该设置一些额外的属性?
konva
:7.1.4
react-konva
:16.12.0-0