jpg 转 png 到底做了什么
它不会把细节找回来。JPEG 的压缩是有损且永久的:原始文件被写出来的那一刻,一部分信息就已 经被抹掉扔了。重新存成 PNG,只是把活下来的那部分完美地保存起来,连压缩痕迹一起。
听起来像是"那就别转了",如果这张照片你只是拿来看,确实如此。它的价值在别处:PNG 是无损的, 意味着文件停止衰减。打开一个 JPEG、裁一刀、存盘、再打开、调一下色阶、再存——每一个来回都 会把整张图重新压一遍,每次多加一点损伤。同样的操作在 PNG 上做,第十次存盘和第一次逐位相同。
什么情况下该这么转
有三种情况明显值得。
第一是编辑流程。如果这个文件接下来要被反复打开保存,或者要在多个人、多个软件之间来回传, 先转成 PNG 相当于给画质加了一个下限。
第二是对面只认 PNG。图标生成器、一些游戏引擎和资源管线、很多文档系统、以及一大堆上传框, 都只收 PNG。
第三是合成。任何你打算叠层、遮罩、抠图的素材,都该待在有 alpha 通道的格式里。JPEG 本身没有 透明可以带过来,但 PNG 能装得下你之后加上去的透明。
体积会怎么变
会变大,常见是 5 到 10 倍。PNG 的字节全花在精确描述每个像素上,而照片类内容对它几乎是最坏 情况:上百万种细微不同的颜色,几乎没有重复可供压缩算法利用。
这一点值得直说,因为不少人转 PNG 是指望得到一张更好的图,结果只拿到一张大得多的图。如果体 积重要、而你只是要看或者发布这张图,那就留着 JPEG。
JPG 和 JPEG 是同一种东西
这点值得说清楚,因为它让不少人以为搜 jpeg 转 png 和搜 jpg 转 png 是两件事。三个字母的扩展名只是"点后面只能跟三个
字符"那个年代留下来的习惯,格式没区别、画质没区别、兼容性也没区别:.jpg 和 .jpeg 逐字节
是同一类文件。
本机处理
解码和重新编码都在这个浏览器标签页里用 canvas 完成。没有上传,所以不排队、没有服务器强加的 体积上限,事后也不会有一份你的照片留在别处。