不懂就问: png 格式图片转成 jpeg,到底算什么类型的图片

2020-10-11 18:56:23 +08:00
 XingWu

众所周知,jpeg 的图片不能有透明背景色

那我要是将一张透明背景色的 png,修改为 jpeg 后缀,打开仍然是透明的,它算什么格式呢?

8326 次点击
所在节点    JavaScript
73 条回复
ETiV
2020-10-11 21:18:09 +08:00
应该是被使用 Windows 的惯性带下来的?

文件扩展名 != 文件数据的表达
JerryCha
2020-10-11 21:40:58 +08:00
你不会以为 jpeg 存的是 rgb 数据吧
deplives
2020-10-11 21:58:49 +08:00
所以你以为改个文件后缀就能发明一个新的文件格式了
ysc3839
2020-10-12 00:34:12 +08:00
@xiri 后缀不仅仅是给人看的也是给部分程序看的。
除了 Windows,一些 Linux 的桌面环境,以及 Android 、macOS 也会通过文件后缀来区分文件类型,不见得所有类 Unix 系统都是通过读取文件内容来区分文件类型的。

而且读取文件内容来区分文件类型并不是一个很好的设计。设想一下你在网络不好的情况下挂载了个远程文件系统,然后文件管理器给你把每个文件都读一遍来显示文件类型,你必须等半天等它读完,这是个好设计吗?
widewing
2020-10-12 01:08:36 +08:00
@px920906 哈哈哈当年用软盘拷了一堆游戏回来后就在纳闷怎么打不开。。
vk42
2020-10-12 01:54:09 +08:00
lz 重新定义了“转格式”
crab
2020-10-12 02:50:19 +08:00
文件类型,文件扩展名的区别。这种拉入看下 16 进制头部。
KasuganoSoras
2020-10-12 04:14:23 +08:00
男的穿上了女装就变成女人了?
虽然你看起来他是个女人,但是实际上他还是男的(
xiadong1994
2020-10-12 04:26:21 +08:00
@ysc3839 所以文件类型是写在文件最开始的……
vmebeh
2020-10-12 07:53:45 +08:00
jinliming2
2020-10-12 08:36:32 +08:00
@ysc3839
> 除了 Windows,一些 Linux 的桌面环境,以及 Android 、macOS 也会通过文件后缀来区分文件类型,不见得所有类 Unix 系统都是通过读取文件内容来区分文件类型的。
这句不对,这些系统并不是根据后缀拓展名来区分文件类型的,而是根据扩展名来决定 [使用什么程序来处理这个文件] ,相当于给文件进行一个不强制的分类而已。比如看到 .aaa 后缀就交给 A 程序处理,看到 .bbb 后缀就交给 B 程序处理。
windows 下也是如此,正如 @AX5N #17 #18 说的那样,这类知识没人教,所以很多人认为 Windows 下是通过扩展名来识别文件类型的。其实不是,Windows 也仅仅是根据扩展名来决定使用哪个程序来处理这类文件而已。

> 而且读取文件内容来区分文件类型并不是一个很好的设计。
是不是一个好的设计我不知道,但至少现在几乎所有程序都是根据文件内容来区分文件类型的,区分的方法是判断“文件头”,也就是文件开头的几个字节是什么。
而通过文件扩展名来识别文件类型却并不可靠,比如 @em70 #19 说的早期 PS 如果图片扩展名不对就打不开。并且现在网上有好多的图片文件扩展名也都不对,网络上一般通过 Content-Type 中的 MIME 信息来标识文件的处理方式,比如是图片还是视频,还是要求下载。所以网络上的图片很大一部分都是没有扩展名的,这就导致你右键另存为之后文件没有后缀而打不开。
(当然,这里很多人会不管图片具体是什么格式而直接将扩展名改成 .jpg 或者 .png ,告诉系统这是张图片,用图片查看器打开就行,图片查看器通常不会管你的拓展名是啥,而是根据文件内容的前几个字节来判断文件类型进行解析渲染)
HenryWang0723
2020-10-12 09:21:07 +08:00
改后缀不算转格式吧
idtaanlcoe
2020-10-12 09:38:09 +08:00
依然是 png 格式,改后缀不会影响编码,打开的时候依然是 png 编码解析出来
12101111
2020-10-12 09:40:46 +08:00
有一些格式具有相同的扩展名,但是却有不同的版本(比如 rar 和 rar5)
有一些格式具有相同的扩展名,但是扩展名只是对应一个容器,具体的编码方式存储在容器内部(比如 mp4 和 webp 是容器格式, H.264 H.265 vp9 是编码方式)
azcvcza
2020-10-12 09:45:42 +08:00
小时候我看电脑里一大堆莫名其妙的后缀,就猜要根据前几个位置的标志来做区分读写。.jpeg 和.png 如果标志位都一样,那读取器应该不会读取失败,顶多是某些格式必要信息是空的
guochao
2020-10-12 09:48:27 +08:00
拓展名只是为了方便人阅读,以及一部分程序员偷懒,所创作出的文件命名方式,本身并不决定文件的类型。改名并不会影响文件本身的格式,格式和协议是说数据构成的方式,但是可能会改变一些程序默认的处理文件的方式。

换个说法,你有一本射雕英雄传.武侠小说,包了个书皮上面写数学.学习资料,那么这份资料究竟是武侠小说呢,还是学习资料呢?显然换了个名字并不影响本身的内容,但是会让管理员本来要把小说放到小说区,结果一看书皮是学习资料就放到了教辅区。但是同学打开这本书,如果认得是武侠小说,就会在看小说的时候打开,如果不认识这本小说,轻则扔到一遍重则走火入魔
ccbikai
2020-10-12 09:52:06 +08:00
后缀只是给人读的,机器读的时候不关注后缀
idou
2020-10-12 09:53:17 +08:00
@px920906 #11 这操作神了
crella
2020-10-12 09:55:54 +08:00
这样用 irfanview 打开的时候就会提示是使用了错误后缀的 png 文件了
zhuweiyou
2020-10-12 10:06:29 +08:00
改后缀 不等于改格式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/713957

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX