BlurHash占位图生成器 - 从图片生成模糊预览
上传图片,生成BlurHash字符串和对应的CSS占位图像,用于渐进式加载。
UD5工具箱
可视化创建并操作自定义 ReadableStream,体验流式数据处理、背压机制与异步读取。
desiredSize ≤ 0)时,pull() 方法不会被调用,直到消费者读取了足够数据。在本工具中,设置较长的读取间隔即可模拟消费缓慢的场景,观察背压效果。
new ReadableStream({ start(controller), pull(controller), cancel(reason) }) 构造函数:
controller.enqueue(chunk) 加入数据块,数据发完后调用 controller.close()。stream.getReader() 会锁定该 ReadableStream,同一时间只能有一个活动 reader。这确保了数据不会被多个消费者交错读取。如果需要多个消费者同时读取,可使用 stream.tee() 方法将流分流为两个独立的副本。释放 reader 可调用 reader.releaseLock() 或等待流自然结束。
| 特性 | ReadableStream | 普通数组 |
|---|---|---|
| 数据加载 | 按需异步拉取(惰性) | 一次性全部在内存中 |
| 内存占用 | 可控,仅保留当前处理块 | 全量占用 |
| 背压支持 | ✅ 内置 | ❌ 需手动实现 |
| 取消机制 | ✅ cancel() 可中断 | ❌ 遍历中难以中断 |
| 适用数据量 | 无限/未知大小 | 有限且已知 |
reader.cancel(reason) 即可取消流。这会触发 ReadableStream 内部的 cancel() 回调,传入取消原因。取消后流进入 "cancelled" 终态,无法再读取。如果使用 for await...of 循环读取,取消操作会抛出错误,需用 try/catch 捕获。本工具提供了"取消流"按钮供您直观体验。
fetch(url).then(r => r.body.getReader()) 逐块处理大文件下载。File.stream() 将大文件分块上传,支持断点续传。pipeThrough() 串联 TransformStream 实现数据流式转换(如压缩、加密、JSON解析)。stream.Readable 与 Web Streams API 互通,处理文件I/O、HTTP请求等。const [branch1, branch2] = stream.tee() 将一个 ReadableStream 分流为两个完全独立的可读流。两个分支各自拥有独立的 reader,互不干扰。这在需要对同一数据源进行多重处理时非常有用,例如:一个分支用于实时显示,另一个分支用于保存到本地存储。注意,原流在 tee() 后会被锁定,需通过分支来读取。
上传图片,生成BlurHash字符串和对应的CSS占位图像,用于渐进式加载。
使用DynamicsCompressorNode实时调节音频的动态范围,控制阈值和比率。
对图片像素沿特定方向按明亮度排序,生成拉伸条纹的数字艺术效果。
手动触发创建大量对象,监控 performance.memory 的变化,初步判断内存增长趋势。
生成VAPID密钥对,建立推送订阅并发送测试通知,帮助调试Service Worker推送。
独立编辑红、绿、蓝通道的强度,甚至交换通道,创造迷幻色彩效果。
设置桶容量与速率,发送模拟请求,观察令牌消耗与限流响应,理解限流算法。
随机生成一对背景和文字颜色,并显示其WCAG对比度是否合格。
在执行长计算任务时,通过navigator.scheduling.isInputPending()及时中断以响应用户输入。
选择多个本地文件,预览应用查找替换、添加前缀后缀等重命名规则的效果。
输入文本或加载文件,使用Brotli算法压缩,显示压缩前后大小和比率。
从公开汇率 API 获取最新数据,进行任意两种货币的换算,展示近期趋势图。
保持单词首尾字母不变,随机打乱中间字母顺序,展示人脑自动纠错的有趣现象。
输入一组数字,分析首位数字分布与本福特定律的吻合程度,用于数据审计。
生成带有严格同步滴答声的闪烁测试视频,用于校正播放设备延迟。
输入设计稿像素字号和画布宽度,反向计算出对应的vw单位和fallback。
输入背景和文字颜色,若对比度不达标,自动计算需微调至最近达标色的方案。
录制音频,通过重采样改变播放音高,可调高成卡通音或调低沉。
根据每行每列的数字提示,填充正确格子,最终显示隐藏图画。
改变音频播放速度但保持原音高不变,或同时改变速度与音高(类似磁带)。
在渐变条上拖拽添加和移动色标,调整颜色和位置,实时输出 CSS linear-gradient 代码。
输入或上传(CSV)两组数值数据,自动绘制散点图并显示回归趋势线。
参照编码表,在规定时间内将符号对应成数字,测试认知处理速率。
选择内置的真实空间脉冲响应(如教堂、大厅),让音频通过Web Audio Convolver节点体验不同混响。
输入两个数字,显示它们的二进制表示,并逐位展示与、或、异或等运算过程。
通过AmbientLightSensor API读取当前环境光强度(勒克斯),辅助自适应亮度设计。
选取渐变色,实时预览渐变文字效果并生成background-clip:text代码。
将任意文本逐字符转换为二进制表示,同时可生成ASCII艺术式的二进制块。
提供不仅依赖颜色的图表模式示例(结合纹理、形状),确保色盲用户也可区分数据。
选择两个颜色和色彩空间,调整混合比例,实时预览并生成CSS color-mix()函数代码。