图像近似高斯模糊的快速实现,以及 WebAssembly 模块的导出

在图像处理软件中的模糊滤镜一般都会有高斯模糊(Gaussian Blur),因为它效果最好,接近人眼的模糊效果(也许是由于正态分布的无处不在?)。但对图像做真正的高斯模糊(在我的理解,也即使用满足二阶正态分布的卷积核对二维离散分布的空间域做平滑处理),由于卷积的定义,计算量颇大。可以采用一些快速的算法去模拟这个效...

使用 d8 快速测试 WebAssembly 模块性能

d8 是 v8 的简易 CLI,它提供了一个极简的 JS 宿主环境,可用于 v8 的学习和调试,比起 nodejs,它更精简和专注。 除了 JS 以外,d8 也具有 WASM 的解释功能,可以方便地用于测试 WASM 模块的性能。如果你的 WASM 是要在浏览器里运行的,比起 wasmtime,v8(以及 spi...

Handy Video Analyze Tool

最近在写一些跟视频解码相关的简单程序,学习 avcodec 技术时有一些强大的分析工具,分享一下。 码流与封装容器相关 bento4 bento4 是一套专用于 mp4 格式文件分析和编辑的 SDK,支持的功能非常多。 工具 用途 mp4info displays high level in...

Tips On Viewing Logs

面对浩如烟海的 log,在排查错误和查找信息时使用一些趁手的工具,快速定位,关爱视力,有益身心健康。 高级的工具 lnav lnav 是一个非常强大的日志查看器,有多种视图和过滤功能,不过最喜欢的其实还是自动的颜色高亮。 lnav 官网给出的效果图 系统自带工具 不用安装额外的程序,linux 多数发行版都有...

Decode Video Using ffmpeg In Browser

音视频开发入门,可能绕不开 ffmpeg 这个项目,最近看了篇 知乎专栏,觉得这个事情很有意思。 比起直接编辑整个 ffmpeg 项目的 CLI 到前端,更符合实际需求的方式,是先基于 ffmpeg 各种 lib二次开发出合适的功能,然后再使用 Emscripten 编译到 Webassembly。 跟着教程实现...

使用 docker 构造前端构建环境

托管在公司 gitlab 上的一个前端项目,最近在尝试 docker 化。 准备阶段 Gitlab 上的一些问题 如果项目不是公开的,从 docker 环境中拉取代码会有些许权限问题,可一一解决。 clone with deploy token 到 Gitlab 中对应项目的 settings/repositor...

CSS 中的两种模糊半径

比较一下 text-shadow 和 filter: drop-shadow 的模糊半径差异

浏览器中的字体信息测量

用简单的工具函数获取字符的宽高

SVG 元素的自定义 transform origin

不要使用 transform-origin 属性 SVG 支持 transform,而且写法似乎与 CSS 中相同,但是它的标准里并不支持 transform-origin 属性。虽然在部分浏览器中,给 SVG 元素指定 transform-origin 似乎是有效果的(写法和结果也与 CSS 一样),但是无法指...

Goodbye My Santa Monica Dream 🎵

从《Life is strange》的原声带中发现的瑰宝,来自澳大利亚的兄妹组合 Angus & Julia Stone 的一首略显忧伤的曲子,他俩前几年的曲风,小清新中带着些许迷幻。妹妹声音空灵慵懒,像加州的海风,棕榈叶间斑驳的阳光,和歌词特别配。 原曲使用 Open D 调弦,变调夹 3 品,感谢...