当前位置:C++技术网 > 资讯 > 你被电脑上右键重命名功能给骗了,你造吗?

你被电脑上右键重命名功能给骗了,你造吗?

更新时间:2015-11-15 22:07:43浏览次数:1+次

今天开始做软件,想着给软件增加一个启动画面的功能,结果装逼失败,就找原因,我是引入bmp图片作为启动画面,原来的图片是png格式的,我右键重命名修改后缀为bmp。查找原因,逛论坛的时候,有人说,是图片的信息的原因,后来我想到之前看过孙鑫的MFC视频,查看图片的二进制源码来判断图片的信息。可是,我不会操作二进制源码啊!好吧,花了一下午才解决。不说废话了,实图操作。

将一个png图片改为bmp图片。

利用UE查看它的16进制源码:

修改后缀,利用UE查看:

我将1.png转换为1.bmp后,在UE中引入这个图片,然后你看图片的16进制的代码的前两位,在《位图图片内部存储结构详解!!!》中解释了,前两个字节就是图片的类型。

下面,我们看看常见的图片后缀的16进制代码中前两个字节的值:


1.JPEG/JPG
- 文件头标识 (2 bytes): $ff, $d8 (SOI) (JPEG 文件标识) 
- 文件结束标识 (2 bytes): $ff, $d9 (EOI) 

2.TGA
- 未压缩的前5字节   00 00 02 00 00
- RLE压缩的前5字节   00 00 10 00 00

3.PNG
- 文件头标识 (8 bytes)   89 50 4E 47 0D 0A 1A 0A

4.GIF
- 文件头标识 (6 bytes)   47 49 46 38 39(37) 61
                        G  I  F  8  9 (7)  a

5.BMP
- 文件头标识 (2 bytes)   42 4D
                        B   M

6.PCX
- 文件头标识 (1 bytes)   0A

7.TIFF
- 文件头标识 (2 bytes)   4D 4D 或 49 49

8.ICO
- 文件头标识 (8 bytes)   00 00 01 00 01 00 20 20 

9.CUR
- 文件头标识 (8 bytes)   00 00 02 00 01 00 20 20

10.IFF
- 文件头标识 (4 bytes)   46 4F 52 4D
                        F  O  R  M

11.ANI
- 文件头标识 (4 bytes)   52 49 46 46
                        R  I  F  F