【问题标题】:html canvas: clipping and texthtml 画布:剪辑和文本
【发布时间】:2011-11-10 13:38:21
【问题描述】:

我正在使用画布开发绘画应用程序, 我想让用户选择仅在选定区域中绘制。 为此,我可以使用 clip() 方法。 但是,如果我希望用户也能够在字母内部绘制 - 有没有办法使用 clip() 文本? 我还有其他方法可以做到吗?

谢谢

【问题讨论】:

  • 我无法理解“但如果我希望用户也能够在字母内部绘制”部分

标签: html canvas clip


【解决方案1】:

您可以这样做,但不能使用剪辑。 Clip 仅适用于路径,文本不是路径。

您需要使用第二个内存中(不在页面上)画布才能达到效果。方法如下:

  1. 制作一个内存画布,将其设置为能够包含文本的宽度和高度
  2. 将文本绘制到内存画布上
  3. 将内存中上下文的 globalCompositeOperation 设置为“source-in”
  4. 在文本中画出你想要剪辑的东西
  5. 使用drawImage(in-memory-canvas, x, y) 将新创建的效果放到您的普通画布上

【讨论】:

  • 好吧,这会造成一些问题。当我用小于 100% 的 alpha 颜色绘制“剪切”文本时,我无法用更高的 alpha % 颜色再次绘制相同的像素。
猜你喜欢
  • 1970-01-01
  • 2014-02-05
  • 2021-11-27
  • 2014-10-06
  • 1970-01-01
  • 2023-03-03
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多