我正在研究HTML5中的涂鸦应用程序,我想做一些桶功能.我们的想法是绘制一条路径,它将被关闭并填充所选颜色(笔划的颜色).它适用于纯色,但如果我想要一个透明的笔触和填充,我会遇到这个问题:http://imgur.com/0N3MW
发生的是填充完成直到笔划的中间(路径的实际采样点),因此在形状内部的行程大小的一半线是较暗的,因为它是填充和笔划的交点.
你看到了解决方法吗?
不幸的是,我现在无法发布到JSFiddle,因为它处于READ ONLY模式.但你应该能够看到我在谈论这个沙箱中的内容:http://bit.ly/AbaMLl (网站和图书馆与我正在使用的内容无关,它只是我发现的一个帆布沙箱)
欢迎任何想法/主角:)
我想捕获一个画布的一小部分作为位图.那可能吗?这样我可以在该区域上绘制另一个位图后替换它.一旦我完成了位图,我想用原始作品替换我画的一小块画布.
谢谢!
我有一个用 base64 编码的图像,我需要以同步方式在画布上绘制它。看看我的这段代码:
//convert base64 to actual Image()
var input = new Image();
input.src = dataurl;
//draw on canvas
var w = input.width, h = input.height;
canvas.width = w; canvas.height = h;
ctx.drawImage(input, 0, 0)
Run Code Online (Sandbox Code Playgroud)
这曾经适用于 Chrome。我知道假设浏览器能够在下一条指令之前完成加载不是一个好习惯,但它确实有效。后来经过几次更新,终于失败了。
我无法侦听load事件,因为这会使其异步,这不好,因为这是一个生成器函数,我需要同步返回画布。该程序是围绕它构建的,使其异步意味着完全重写。这不好。
试图
input.src = dataurl;
while(!input.width){ /* busy wait */ }
var w = input.width, h = input.height;
Run Code Online (Sandbox Code Playgroud)
不起作用,因为浏览器不会在我的代码完成执行之前更新它。
现在我真的想不出任何方法来解决这个困境,所以任何输入都值得赞赏。(请注意,datauri 是从另一个画布生成的,我确实可以访问。)
例如 var new = canvas.toDataURL("image/png");
我希望这个新变量中存在的base64显示在第二个canvas元素中.但它不使用drawimage方法显示base64图像.如果我用say,它会起作用image.png