草庐IT

Canvas-EventSystem-Panel

全部标签

javascript - 如何在 HTML Canvas 上找到文本的高度?

该规范有一个context.measureText(text)函数,它会告诉您打印该文本需要多少宽度,但我找不到找出它有多高的方法。我知道它是基于字体的,但我不知道将字体字符串转换为文本高度。 最佳答案 更新-作为这个工作的一个例子,我在Carotaeditor中使用了这个技术。.根据ellisbben的回答,这是一个增强版本,用于从基线获取上升和下降,即与tmAscent相同和tmDescent由Win32的GetTextMetric返回API。如果您想使用不同字体/大小的跨度进行自动换行的文本运行,则需要这样做。上面的图像是在S

javascript - 如何获取鼠标单击 Canvas 元素的坐标?

这个问题在这里已经有了答案:Realmousepositionincanvas(5个回答)关闭去年。向Canvas元素添加单击事件处理程序以返回单击的x和y坐标(相对于Canvas元素)的最简单方法是什么?无需兼容旧版浏览器,Safari、Opera和Firefox即可。 最佳答案 如果您喜欢简单但仍需要跨浏览器功能,我发现此解决方案最适合我。这是@Aldekein解决方案的简化,但没有jQuery。functiongetCursorPosition(canvas,event){constrect=canvas.getBoundin

database - Fabric.js - 如何使用自定义属性在服务器上保存 Canvas

我希望能够将当前Canvas的状态保存到服务器端数据库,可能作为JSON字符串,然后使用loadFromJSON恢复它。通常,这很容易使用:varcanvas=newfabric.Canvas();functionsaveCanvas(){//convertcanvastoajsonstringvarjson=JSON.stringify(canvas.toJSON());//saveviaxhr$.post('/save',{json:json},function(resp){//dowhatever...},'json');}然后functionloadCanvas(json){/

javascript - 如何将 HTML5 Canvas 保存为服务器上的图像?

我正在从事一个生成艺术项目,我希望允许用户保存通过算法生成的图像。总体思路是:使用生成算法在HTML5Canvas上创建图像图像完成后,允许用户将Canvas作为图像文件保存到服务器允许用户下载图片或将其添加到使用算法生成的图片库中。但是,我被困在了第二步。在谷歌的帮助下,我找到了这个blogpost,这似乎正是我想要的:这导致了JavaScript代码:functionsaveImage(){varcanvasData=canvas.toDataURL("image/png");varajax=newXMLHttpRequest();ajax.open("POST","testSav

html5 - Canvas 元素 - 多层

如果没有任何扩展库,是否可以在同一个Canvas元素中拥有多个图层?所以如果我在顶层做一个clearRect,它不会删除底层?谢谢。 最佳答案 不,但是,您可以分层多个元素相互叠加并完成类似的事情。在layer1上绘制第一层Canvas,第二层在layer2Canvas。那么当你clearRect在顶层,下层Canvas上的任何内容都会显示出来。 关于html5-Canvas元素-多层,我们在StackOverflow上找到一个类似的问题: https://s

html - 在 HTML5 Canvas 中设置单个像素的最佳方法是什么?

HTML5Canvas没有明确设置单个像素的方法。可以使用很短的线设置像素,但抗锯齿和线帽可能会干扰。另一种方法可能是创建一个小的ImageData对象并使用:context.putImageData(data,x,y)把它放在适当的位置。谁能描述一种有效且可靠的方法? 最佳答案 有两个最佳竞争者:创建一个1×1的图片数据,设置颜色,putImageData在位置:varid=myContext.createImageData(1,1);//onlydothisonceperpagevard=id.data;//onlydothis

html - 如何更改 Canvas 元素中元素的不透明度(alpha、透明度)?

使用HTML5元素,我想加载一个图像文件(PNG,JPEG等),将其完全透明地绘制到Canvas上,然后将其淡入。我已经弄清楚如何加载图像并将其绘制到Canvas上,但是我不知道如何改变它的不透明度。这是我目前的代码:varcanvas=document.getElementById('myCanvas');if(canvas.getContext){varc=canvas.getContext('2d');c.globalAlpha=0;varimg=newImage();img.onload=function(){c.drawImage(img,0,0);}img.src='ima

javascript - 调整 HTML5 Canvas 大小以适应窗口

如何自动缩放HTML5适合页面的元素?例如,我可以得到通过设置height进行缩放和width属性为100%,但不会扩展,是吗? 最佳答案 我相信我已经找到了一个优雅的解决方案:JavaScript/*important!foralignment,youshouldmakethings*relativetothecanvas'currentwidth/height.*/functiondraw(){varctx=(acanvascontext);ctx.canvas.width=window.innerWidth;ctx.canva

javascript - 使用 HTML5/Canvas/JavaScript 在浏览器中截屏

Google的“报告错误”或“反馈工具”可让您选择浏览器窗口的一个区域来创建一个屏幕截图,并提交您对错误的反馈。JasonSmall的截图,发布在duplicatequestion.他们是怎么做到的?Google的JavaScript反馈API从here加载和theiroverviewofthefeedbackmodule将演示截图功能。 最佳答案 JavaScript可以读取DOM并使用canvas呈现相当准确的表示。我一直在研究将HTML转换为Canvas图像的脚本。今天决定将其实现为发送您所描述的反馈。该脚本允许您创建反馈表单

javascript - 如何清除 Canvas 以进行重绘

在尝试了合成操作并在Canvas上绘制图像之后,我现在尝试删除图像并进行合成。我该怎么做?我需要清除Canvas以重绘其他图像;这可能会持续一段时间,所以我不认为每次都绘制一个新矩形是最有效的选择。 最佳答案 鉴于canvas是一个Canvas元素或OffscreenCanvasobject,使用clearRect:constcontext=canvas.getContext('2d');context.clearRect(0,0,canvas.width,canvas.height);