本帖最后由 linzg3 于 2024-12-18 15:00 编辑
1.示例代码实现的目的是获取图片(PNG,JPEG,GIF,BMP)和视频(MP4,AVI)的格式。各个文件的头部字节集:
PNG 头8个字节集是:{137,80,78,71,13,10,26,10}
JPEG 头3个字节集是:{255,216,255}
GIF 头4个字节集是:{71,73,70,56}
BMP 头2个字节集是:{66,77}
MP4 头7个字节集是:{0, 0, 0, 20, 102, 116, 121}
AVI 头4个字节集是:{82,73,70,70}
图片字节集 = {137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,64,0,0,0,64,8,6,0,0,0,170,105,113,222,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,12,240,73,68,65,84,120,94,221,91,9,144,20,213,25,254,254,222,93,150,67,20,41,21,47,196,43,209,176,50,211,61,11,17,226,17,73,188,56,36,72,5,80,193,233,1,44,80,41,16,53,70,163,81,49,145,68,36,26,66,169,32,137,236,244,0,162,172,26,84,148,8,241,72,76,5,140,236,116,247,32,30,241,130,16,47,64,33,32,44,187,236,244,31,186,231,216,158,153,238,153,238,217,93,72,236,42,10,152,247,254,255,189,247,245,255,254,187,9,7,225,233,63,73,63,203,216,207,53,16,232,36,131,185,15,129,78,2,208,7,224,62,0,85,129,176,13,140,237,96,222,206,36,108,3,120,59,1,255,76,26,120,58,177,56,184,181,35,183,72,29,193,252,156,137,239,118,111,108,217,247,125,8,116,33,51,70,0,56,165,13,235,252,137,137,158,161,230,150,213,234,227,161,205,109,224,227,72,218,174,0,136,97,253,26,129,104,40,131,47,6,208,173,253,55,75,47,0,120,46,174,4,22,182,23,239,118,1,32,20,209,70,49,11,211,0,190,192,101,99,73,128,...}
这个图片通过以上对比得出 .png的图片
示例代码如下:
第一位字节集 = 取字节集左边 (头部字节集, 1 ) 判断 (第一位字节集 = { 137 }) 如果真 (头部字节集 = { 137, 80, 78, 71, 13, 10, 26, 10 }) 返回 (创建键值表 (“format”, “.png”). 到JSON (假, , , , ))   判断 (第一位字节集 = { 255 }) 如果真 (取字节集左边 (头部字节集, 3 ) = { 255, 216, 255 }) 返回 (创建键值表 (“format”, “.jpg”). 到JSON (假, , , , ))   判断 (第一位字节集 = { 71 }) 如果真 (取字节集左边 (头部字节集, 4 ) = { 71, 73, 70, 56 }) 返回 (创建键值表 (“format”, “.gif”). 到JSON (假, , , , ))   判断 (第一位字节集 = { 66 }) 如果真 (取字节集左边 (头部字节集, 2 ) = { 66, 77 }) 返回 (创建键值表 (“format”, “.bmp”). 到JSON (假, , , , ))   判断 (第一位字节集 = { 0 }) 如果真 (取字节集左边 (头部字节集, 7 ) = { 0, 0, 0, 20, 102, 116, 121 }) 返回 (创建键值表 (“format”, “.mp4”). 到JSON (假, , , , ))   判断 (第一位字节集 = { 82 }) 如果真 (取字节集左边 (头部字节集, 4 ) = { 82, 73, 70, 70 }) 返回 (创建键值表 (“format”, “.avi”). 到JSON (假, , , , ))     返回 ( “上传文件格式不正确”)
|