图片格式转换

把图片拖进左边的框,或点一下选文件;右边挑目标格式,要缩放就调比例或最长边。整条链路都在本地 canvas 上跑,图片不会上传到任何服务器,换完设置会自动重转一次。下面三节写的是这件事的代价 —— 它们都不会报错,所以得先说清楚。

原图
—
—
结果
—
—
尺寸
—

—

重编码一定有代价

PNG 之间互转是无损的,体积、像素都不会变。但只要目标里有 JPEG,就是有损的:编码器会丢掉它认为不重要的细节,而且每存一次就丢一次 —— 把一张 JPEG 转成 PNG 再转回 JPEG,画质会比原来更差。所以这一页只做一次转换,不替你在内部反复编码。

元数据会丢

canvas 重新画出来的图不带任何元数据:EXIF 里那个旋转标记、拍摄时间、GPS 坐标、色彩配置文件、ICC、动画帧 —— 全部没了。这一页把这一点明确写出来,因为"导出的图方向突然反了"和"颜色和原图不一样"这两件事,根源都在这里。

缩放是不可逆的

缩小之后再放大回原尺寸,得到的是一张模糊的图,不是原来那张。这一页不保存原图,也不提供"撤销" —— 转换完请另存一份,别拿结果覆盖原文件。

常见问题

支持 HEIC 吗?

不支持,浏览器本身就不支持。 桌面 Chrome、Edge、Firefox 都解不了 HEIC/HEIF,而这一页用的正是浏览器自带的解码器。iPhone 可以在「设置 → 相机 → 格式」里改成"兼容性最佳"(存成 JPEG),或者用系统自带的导出功能转一次。

为什么转成 WebP 之后格式还是 PNG?

因为你的浏览器不会编码 WebP。canvas.toBlob 在遇到不支持的目标格式时会静默退回 PNG,不抛错、不打警告。这一页会读回实际产物的 MIME 类型,对不上就明说 —— 而不是给你一个后缀写着 webp、内容却是 PNG 的文件。

图片会传到服务器吗?

不会。 解码、缩放、编码全部由浏览器本地完成,没有一次网络请求。断网也能用。

为什么转换后的 PNG 有时候比原 JPEG 还大?

因为 PNG 是无损的,而 JPEG 是有损压缩。一张照片压成 JPEG 可能只有 300KB,而它解出来的像素用 PNG 存可能要 5MB —— 这不是转换失败,是无损格式本来就要这么多字节。要小就选 WebP 或 JPEG。

鼠标维修

二维码位微信
淘宝店铺二维码淘宝店铺

鼠标不好用了?联系我们看看。

鼠标维修