图片缺少头部补全

首先

我们得到一张不完整的图片

 

 

其次

知道这是一张缺少头部的图片

然后运行以下代码(这里为png):

import base64
import codecs
a = "89 50 4E 47 0D 0A 1A 0A".replace(" ", "") # png头部
a = codecs.decode(a, 'hex')  # 将十六进制直接化为字节码
with open(r'C:\Users\P\Desktop\pic_png') as f:
    one = f.read()

result = base64.b64decode(one)
result = a + result
with open("result.png", 'wb') as k:
    k.write(result)

 

 

各种图片的格式(均为十六进制)

一:.jpeg
文件头标识 (2 bytes): FF, D8 (SOI)
文件结束标识 (2 bytes): FF, D9 (EOI)
 
二:.png
文件头标识 (8 bytes):
89 50 4E 47 0D 0A 1A 0A
 
三:.bmp
文件头标识 (2 bytes):
42 4D
 
四:.gif
文件头标识 (6 bytes)
47 49 46 38 39(37) 61
 
五:.tiff
文件头标识 (2 bytes)
4D 4D or
49 49

 

posted @ 2021-05-30 15:18  p40h33  阅读(588)  评论(0)    收藏  举报