Skip to content
CGIFMPublic

About

把 JPEG 精确压到指定 KB 的纯浏览器算法(上限/精确双模式),考试报名照片工具核心

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

jpeg-hit 🎯

把 JPEG 精确压到指定 KB 的纯浏览器算法。零依赖,两个函数。

线上体验:规格急救站 —— 考试报名照片一键达标工具

为什么需要

考试/政务报名系统对照片大小有硬性限制:

场景 要求
国家公务员考试 照片约 20KB
教师资格证报名 ≤200KB(295×413)
研究生报名 ≤100KB(480×640)
各类报名附件 ≤1MB

普通压缩工具只能"压小一点",无法精确命中目标体积。更麻烦的是反向问题:照片太小(如 295×413 的证件照),画质拉满也只有 40KB,而系统要求"150KB 左右"——这时需要放大分辨率再压。

用法

<script type="module">
import { hitTarget, hitExact } from './jpeg-hit.mjs'

// 场景1:不超过 30KB(国考照片)
const blob = await hitTarget(canvas, 30 * 1024)

// 场景2:精确命中 150KB(低分辨率自动放大重采样)
const blob2 = await hitExact(canvas, sourceImage, 150 * 1024)

// 下载
const a = document.createElement('a')
a.href = URL.createObjectURL(blob2)
a.download = 'photo.jpg'
a.click()
</script>

算法

  1. 上限模式 hitTarget:二分搜索 JPEG quality(0.05~0.95),7 轮内收敛到目标体积以下的最大画质点。
  2. 精确模式 hitExact:先用 quality 0.9 探测画布能达到的最大体积;不足目标时按 1.3× 步进放大画布重采样(上限 4×),再从上下两侧二分夹逼,取离目标最近的一侧。

License

MIT · 由 规格急救站 提取开源

About

把 JPEG 精确压到指定 KB 的纯浏览器算法(上限/精确双模式),考试报名照片工具核心

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages