📝 杂记
共 93 篇文章PNG 压了三遍只减 426 字节:无损压缩的真实边界
11 张 PNG 逐档实测:66 组里 55 组省 0 字节,产物喂回去压满三遍累计只降 426 B、0.19%。IDAT 占了 99.97% 以上体积,DEFLATE 的上限由图像内容定死,还能减字节的只有颜色表示这一维。
WebP 转 PNG 后体积涨了几倍:什么时候必须转,怎么把涨幅压住
WebP 转 PNG 实测涨 1.4194 倍到 80.8547 倍,像素却 diffPixels = 0:涨的是 RGBA 容器而不是画质。讲清什么时候必须转、怎么把涨幅压住。
截图缩到四分之一,小字糊成一团的三种原因
截图缩到 320×180 后小字糊成一团,缩到 1024×576 体积反而从 62,744 B 涨到 79,480 B。三条原因都在模板里:默认采样质量 low、只有一处 drawImage、画布永远等于请求值。
照片转了 90°,换台设备方向又回来了:EXIF 与真实旋转的分工
相册里点的那次旋转只写了一个 Orientation 标记,像素一行没动;真搬像素的旋转要把画面再过一趟 0.92 重编码,元数据一起归零。28210 B 停在 0° 下载也变 28003 B,下载再上传 4 趟更回不到原点。
同样裁 300×300,头像为什么总偏右下角半格
同一张图裁两次都是 300×300,叠在纯色底上却差半格:居中那次 (oldW - w) / 2 也交给 Math.round,半数一律朝正无穷进位,于是左边距 89、右边距 88。
按每月 1.7 倍预估 18 个月,脚本和表格为什么给出两个数
首月 2、每月乘 1.7、共 18 个月,闭式与逐项累乘给出两个尾数,差在小数第 15 位。浮点、幂运算与显示分档各管一段,真正写进汇报会出事的是项数口径。
每月同一天和每 28 天一次,一年差出 29 天
同一份经期记录,按每月同一天推进和按每 28 天推进并不等价:起点 2026-01-31 时第 12 次分别是 2027-01-31 与 2027-01-02,差 29 天;那页只有按天的 addDays,没有日历月逻辑。
接口 JSON 贴成 PHP 数组,哪些值会悄悄变形
接口返回贴成 PHP 数组后,超过 2^53 的订单号会少 1,9223372036854775807 相差 193,{} 与 [] 塌成同一种写法,带尖括号的值复制回来还会少字——变形几乎都出在第一步 JSON.parse。
/26 到底能装几台机器:可用主机数、广播地址与 /31 的例外
/26 的 62 台来自 2 的 6 次方减 2,可这条公式只在前缀不大于 30 时成立:/31 点对点实测可用 2 个地址,/32 只给 1 个,网关还要再从可用位里吃掉 1 个。
表单只跑 Luhn,为什么会放过 4242 4242 4242 4242
4242424242424242 的校验和恰好 80,而 Luhn 只核对这一个余数:抄错一位实测 1008 个变体一个不漏,同奇偶槽位对调的 4410 组却 100.00% 看不见,随手编的号也有约 1/10 过关。
把质量调到 100 再压一次,图片其实一个字节都没动
质量滑到 100 走的是第 180 行原文件直通,208986 B 进 208986 B 出、节省 0 B;99 档反倒顶到 333872 B。还记了 PNG 先转 JPEG 的平方质量、透明丢失与两个不一致的节省算法。
同一个数打两遍,最小公倍数成了 94906266.99999999:先乘后除撞上限的是中间量
同一个数打两遍就露馅:输入 94906267, 94906267 时,最小公倍数成了 94906266.99999999——先乘后除撞上限的是中间量,不是结果。