Canvas触摸绘画测试 - 多点触控支持检测
在Canvas上使用触摸绘制线条,检验设备的触摸点数量和压力感应支持,辅助调试。
UD5工具箱
使用 Canvas measureText API 精确测量文本宽度,自动缩放字体使其完美适配目标宽度。
Canvas 2D 上下文的 measureText() 方法返回一个 TextMetrics 对象,其中 width 属性表示文本在当前字体设置下的渲染宽度(单位:CSS像素)。浏览器使用其文字渲染引擎计算宽度,因此结果与实际渲染高度一致。
对于大多数现代浏览器,measureText 的精度非常高,误差通常在亚像素级别。但需要注意的是,不同操作系统和浏览器的字体渲染引擎(如 Windows 的 DirectWrite、macOS 的 Core Text)可能有微小差异(通常 < 1px)。
如果指定的字体未安装在系统中或未通过 @font-face 加载,浏览器会使用 fallback 字体进行测量和渲染。这可能导致测量结果与实际使用目标字体时的宽度不同。建议使用系统安全字体或确保自定义字体已加载完毕后再测量。
Canvas 本身不支持多行文本绘制。本工具将文本按 \n 分割,逐行使用 measureText 测量,取最宽行的宽度作为整体文本宽度。自动缩放时以最宽行为基准统一缩放,保证所有行都适配目标宽度。
缩放比例 = 可用宽度 ÷ 最宽行实际宽度。可用宽度 = 目标宽度 - 左右内边距(各20px)。然后新字体大小 = 原始字体大小 × 缩放比例,并限制在 8px ~ 300px 范围内。"仅缩小"模式只在文本超出时缩放,"仅放大"模式只在文本不足时缩放。
动态海报生成、响应式文字布局、SVG/Canvas 文字排版、水印文字适配、Logo 文字缩放、数据可视化标签、以及任何需要精确控制文字宽度的前端场景。搭配 canvas.toDataURL() 可导出为图片。
在Canvas上使用触摸绘制线条,检验设备的触摸点数量和压力感应支持,辅助调试。
使用FileReader.slice逐段读取大型文本文件的前几行或随机位置,避免内存溢出。
利用Performance API绘制当前页面所有资源的加载时间线和文件大小瀑布图。
上传PDF文件,利用pdf.js快速显示文档总页数,无需打开文件。
通过检查Canvas toDataURL或加载测试图,判断当前浏览器是否支持WebP格式。
使用Proximity Sensor API检测设备屏幕附近是否有物体靠近,显示距离与状态。
选择本地文件,通过浏览器File API获取其MIME类型、大小及最后修改时间。
通过gRPC-Web反射协议列出服务方法,并构造请求在浏览器直接调用gRPC后端,简化微服务调试。
输入鱼缸尺寸计算水体升数,并估算可饲养多少条特定大小的鱼。
将正常文本转换为难以直接复制选中的展示格式,增加复制难度。
分析输入文本的字符或单词频率,计算香农熵,评估文本的随机性和信息密度。
配置鼠标移动时跟随的彩色拖尾粒子或图形,生成JS置入网站。
上传EPUB电子书,提取所有章节的纯文本内容用于检索或朗读。
将任意文本逐字符转换为二进制表示,同时可生成ASCII艺术式的二进制块。
为文本块每个段落前添加两个全角空格或指定缩进字符,用于诗词或文章排版。
通过Canvas生成不同粒度、颜色的噪点纹理图片,适合用作页面背景或叠加。
使用空格填充,将文本按指定的列宽左对齐、右对齐或居中对齐,适合纯文本报表。
输入两段英文文本,通过词频向量计算余弦相似度,衡量内容相近程度。
选择本地音频文件,解绘制完整的静态波形图,便于观察响度变化。
将长文本按指定字符数强制插入换行符,保留单词完整性选项,用于纯文本排版。
利用零宽度空格等不可见Unicode字符将秘密信息嵌入普通文本,肉眼不可见,前端加解密。
在Canvas上用鼠标涂抹刮开银色涂层,显示隐藏文字或图片,模拟刮刮乐。
上传纯色背景图片,选择要去除的背景颜色和容差,替换为透明或新背景。
实现经典俄罗斯方块,旋转、移动、加速下落,满行消除计分,纯前端Canvas操控。
生成无意义的随机中文段落,模拟文章排版填充,适合中文界面设计占位预览。
配置粒子数量、颜色、运动方式和连线,生成动态粒子背景效果,一键复制JS实现。
随机生成或手动添加种子点,实时绘制泰森多边形分割区域,可导出为SVG或图片。
交互式探索曼德勃罗分形集,支持鼠标拖拽漫游和滚轮缩放,展示无限自相似细节。
使用递归回溯或Prim算法生成随机迷宫,可设置尺寸,生成后提供求解动画或图片导出。
在正常文字上下添加大量Unicode组合符号,产生毛刺、阴森的Zalgo效果,可调强度。