通过文件头标识判断图片格式
所有类型文件的文件头标志

各类文件的文件头标志1、从Ultra-edit-32中提取出来的JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photoshop (psd),文件头:38425053Rich Text Format (rtf),文件头:7B5C727466XML (xml),文件头:3C3F786D6CHTML (html),文件头:68746D6C3EEmail [thorough only] (eml),文件头:44656C69766572792D646174653A Outlook Express (dbx),文件头:CFAD12FEC5FD746FOutlook (pst),文件头:2142444EMS Word/Excel (xls.or.doc),文件头:D0CF11E0MS Access (mdb),文件头:5374616E64617264204AWordPerfect (wpd),文件头:FF575043Postscript (eps.or.ps),文件头:252150532D41646F6265Adobe Acrobat (pdf),文件头:255044462D312EQuicken (qdf),文件头:AC9EBD8FWindows Password (pwl),文件头:E3828596ZIP Archive (zip),文件头:504B0304RAR Archive (rar),文件头:52617221Wave (wav),文件头:57415645AVI (avi),文件头:41564920Real Audio (ram),文件头:2E7261FDReal Media (rm),文件头:2E524D46MPEG (mpg),文件头:000001BAMPEG (mpg),文件头:000001B3Quicktime (mov),文件头:6D6F6F76Windows Media (asf),文件头:3026B2758E66CF11 MIDI (mid),文件头:4D5468642、从winhex中取出的文件头列表File Type ExtensionsHeaderJPEG jpg;jpeg 0xFFD8FFPNG png 0x89504E470D0A1A0AGIF gif GIF8TIFF tif;tiff 0x49492A00TIFF tif;tiff 0x4D4D002ABit map bmp BMAOL ART art 0x4A47040E000000AOL ART art 0x4A47030E000000PC Paintbrush pcx 0x0A050108Graphics Metafile wmf 0xD7CDC69AGraphics Metafile wmf 0x01000900Graphics Metafile wmf 0x02000900Enhanced Metafile emf 0x0100000058000000Corel Draw cdr CDRCAD dwg 0x41433130Adobe Photoshop psd 8BPSRich Text Format rtf rtfXML xmlHTML html;htm;php;php3;php4;phtml;shtml typeEmail eml Delivery-date:Outlook Express dbx 0xCFAD12FEOutlookpst!BDNMS Office/OLE2 doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1MS Access mdb;mda;mde;mdt Standard JWordPerfect wpd 0xFF575043OpenOffice Writer sxw writerOpenOffice Calc sxc calcOpenOffice Math sxm mathOpenOffice Impress sxi impressOpenOffice Draw sxd drawAdobe FrameMaker fm <MAKERFILEPostScript eps.or.ps;ps;eps %!PS-AdobeAdobe Acrobat pdf %PDF-1.Quicken qdf 0xAC9EBD8FQuickBooks Backup qbb 0x458600000600Sage sly.or.srt.or.slt;sly;srt;slt 0x53520100Sage Backup 1 SAGEBACKUPLotus WordPro v9 lwp 0x576F726450726FLotus 123 v9 123 0x00001A00051004Lotus 123 v5 wk4 0x00001A0002100400Lotus 123 v3 wk3 0x00001A0000100400Lotus 123 v1 wk1 0x2000604060Windows Password pwl 0xE3828596ZIP Archive zip;jar 0x504B0304ZIP Archive (outdated) zip 0x504B3030RAR Archive rar Rar!GZ Archive gz;tgz 0x1F8B08BZIP Archive bz2 BZhARJ Archive arj 0x60EA7-ZIP Archive 7z 7z集'Wave wav WAVEAVI avi AVIReal Audio ram;ra .ra?0Real Media rm .RMFMPEG mpg;mpeg 0x000001BAMPEG mpg;mpeg 0x000001B3Quicktime mov moovWindows Media asf 0x3026B2758E66CF11MIDI mid MThdWin32 Executable exe;dll;drv;vxd;sys;ocx;vbx MZWin16 Executable exe;dll;drv;vxd;sys;ocx;vbx MZELF Executable elf;; 0x7F454C4601010100各种文件类型文件头标志位详细列表FFD8FFFE00, .JPEG;.JPE;.JPG, "JPG Graphic File"FFD8FFE000, .JPEG;.JPE;.JPG, "JPG Graphic File"474946383961, .gif, "GIF 89A"474946383761, .gif, "GIF 87A"424D, .bmp, "Windows Bitmap"4D5A, .exe;.com;.386;.ax;.acm;.sys;.dll;.drv;.flt;.fon;.ocx;.scr;.lrc;.v xd;.cpl;.x32, "Executable File"504B0304, .zip, "Zip Compressed"3A42617365, .cnt, ""D0CF11E0A1B11AE1, .doc;.xls;.xlt;.ppt;.apr, "MS Compound Document v1 or Lotus Approach APR file"0100000058000000, .emf, ""03000000C466C456, .evt, ""3F5F0300, .gid;.hlp;.lhp, "Windows Help File"1F8B08, .gz, "GZ Compressed File"28546869732066696C65, .hqx, ""0000010000, .ico, "Icon File"4C000000011402, .lnk, "Windows Link File"25504446, .pdf, "Adobe PDF File"5245474544495434, .reg, ""7B5C727466, .rtf, "Rich Text Format File"lh, .lzh, "Lz compression file"MThd, .mid, ""0A050108, .pcx, ""25215053, .eps, "Adobe EPS File"2112, .ain, "AIN Archive File"1A02, .arc, "ARC/PKPAK Compressed 1"1A03, .arc, "ARC/PKPAK Compressed 2"1A04, .arc, "ARC/PKPAK Compressed 3"1A08, .arc, "ARC/PKPAK Compressed 4"1A09, .arc, "ARC/PKPAK Compressed 5"60EA, .arj, "ARJ Compressed"41564920, .avi, "Audio Video Interleave (AVI)"425A68, .bz;.bz2, "Bzip Archive"49536328, .cab, "Cabinet File"4C01, .obj, "Compiled Object Module"303730373037, .tar;.cpio, "CPIO Archive File" 4352555348, .cru;.crush, "CRUSH Archive File"3ADE68B1, .dcx, "DCX Graphic File"1F8B, .gz;.tar;.tgz, "Gzip Archive File"91334846, .hap, "HAP Archive File"3C68746D6C3E, .htm;.html, "HyperText Markup Language 1" 3C48544D4C3E, .htm;.html, "HyperText Markup Language 2" 3C21444F4354, .htm;.html, "HyperText Markup Language 3"100, .ico, "ICON File"5F27A889, .jar, "JAR Archive File"2D6C68352D, .lha, "LHA Compressed"20006040600, .wk1;.wks, "Lotus 123 v1 Worksheet"00001A0007800100, .fm3, "Lotus 123 v3 FMT file"00001A0000100400, .wk3, "Lotus 123 v3 Worksheet" 20006800200, .fmt, "Lotus 123 v4 FMT file"00001A0002100400, .wk4, "Lotus 123 v5"5B7665725D, .ami, "Lotus Ami Pro"300000041505052, .adx, "Lotus Approach ADX file"1A0000030000, .nsf;.ntf, "Lotus Notes Database/Template" 4D47582069747064, .ds4, "Micrografix Designer 4"4D534346, .cab, "Microsoft CAB File Format"4D546864, .mid, "Midi Audio File"000001B3, .mpg;.mpeg, "MPEG Movie"0902060000001000B9045C00, .xls, "MS Excel v2" 0904060000001000F6055C00, .xls, "MS Excel v4"7FFE340A, .doc, "MS Word"1234567890FF, .doc, "MS Word 6.0"31BE000000AB0000, .doc, "MS Word for DOS 6.0"1A00000300001100, .nsf, "Notes Database"7E424B00, .psp, "PaintShop Pro Image File"504B0304, .zip, "PKZIP Compressed"89504E470D0A, .png, "PNG Image File"6D646174, .mov, "QuickTime Movie"6D646174, .qt, "Quicktime Movie File"52617221, .rar, "RAR Archive File"2E7261FD, .ra;.ram, "Real Audio File"EDABEEDB, .rpm, "RPM Archive File"2E736E64, .au, "SoundMachine Audio File"53495421, .sit, "Stuffit v1 Archive File"53747566664974, .sit, "Stuffit v5 Archive File"1F9D, .z, "TAR Compressed Archive File"49492A, .tif;.tiff, "TIFF (Intel)"4D4D2A, .tif;.tiff, "TIFF (Motorola)"554641, .ufa, "UFA Archive File"57415645666D74, .wav, "Wave Files"D7CDC69A, .wmf, "Windows Meta File"4C000000, .lnk, "Windows Shortcut (Link File)"504B3030504B0304, .zip, "WINZIP Compressed"FF575047, .wpg, "WordPerfect Graphics"FF575043, .wp, "WordPerfect v5 or v6"3C3F786D6C, .xml, "XML Document"FFFE3C0052004F004F0054005300540055004200, .xml, "XML Document (ROOTSTUB)" 3C21454E54495459, .dtd, "XML DTD"5A4F4F20, .zoo, "ZOO Archive File"通过文件头标识判断图片格式最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE里面查看它的16进制,果然,两个图片的文件头根本就不一样,这不是欺负人嘛,害我白白浪费了半天的时间,差点要重新编译内核。
bmp解码原理

bmp解码原理
BMP(Bitmap Image File)是一种常见的图像文件格式,其解码原理主要包括以下几个步骤:
1. 读取文件头信息:BMP文件以特定的文件头标识开始,用于标识该文件
是一个BMP格式的文件。
这些信息包括BMP文件的类型、大小、版本等。
2. 解析图像头信息:紧随文件头信息之后的是图像头信息,包括图像的宽度、高度、像素数、颜色深度等信息。
这些信息用于确定图像的尺寸、颜色模式等。
3. 读取像素数据:根据图像头信息中的宽度、高度和像素数,读取相应的像素数据。
BMP图像的像素数据按照一定的顺序存储,通常是按照行优先的
顺序逐行读取。
4. 转换像素数据:由于BMP图像的像素数据是以特定的格式存储的,解码时需要将这些数据转换为可显示的像素值。
这通常涉及到将颜色深度转换为实际的颜色值,以及进行必要的色彩空间转换等。
5. 显示图像:将解码后的像素数据送入显示设备,按照一定的显示模式进行显示,最终呈现出BMP图像的内容。
在解码过程中,需要注意一些细节问题,比如数据对齐、像素格式转换等。
此外,还需要根据具体的BMP版本和编码方式进行相应的解码处理。
各类文件的文件头标志

各类文件的文件头标志1、从Ultra-edit-32中提取出来的JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photoshop (psd),文件头:38425053Rich Text Format (rtf),文件头:7B5C727466XML (xml),文件头:3C3F786D6CHTML (html),文件头:68746D6C3EEmail [thorough only] (eml),文件头:44656C69766572792D646174653AOutlook Express (dbx),文件头:CFAD12FEC5FD746FOutlook (pst),文件头:2142444EMS Word/Excel (xls.or.doc),文件头:D0CF11E0MS Access (mdb),文件头:5374616E64617264204A WordPerfect (wpd),文件头:FF575043Postscript (eps.or.ps),文件头:252150532D41646F6265Adobe Acrobat (pdf),文件头:255044462D312EQuicken (qdf),文件头:AC9EBD8FWindows Password (pwl),文件头:E3828596ZIP Archive (zip),文件头:504B0304RAR Archive (rar),文件头:52617221Wave (wav),文件头:57415645A VI (avi),文件头:41564920Real Audio (ram),文件头:2E7261FDReal Media (rm),文件头:2E524D46MPEG (mpg),文件头:000001BAMPEG (mpg),文件头:000001B3Quicktime (mov),文件头:6D6F6F76Windows Media (asf),文件头:3026B2758E66CF11MIDI (mid),文件头:4D5468642、从winhex中取出的文件头列表File Type ExtensionsHeaderJPEG jpg;jpeg 0xFFD8FFPNG png 0x89504E470D0A1A0AGIF gif GIF8TIFF tif;tiff 0x49492A00TIFF tif;tiff 0x4D4D002ABit map bmp BMAOL ART art 0x4A47040E000000AOL ART art 0x4A47030E000000PC Paintbrush pcx 0x0A050108Graphics Metafile wmf 0xD7CDC69AGraphics Metafile wmf 0x01000900Graphics Metafile wmf 0x02000900Enhanced Metafile emf 0x0100000058000000Corel Draw cdr CDRCAD dwg 0x41433130Adobe Photoshop psd 8BPSRich Text Format rtf rtfXML xmlHTML html;htm;php;php3;php4;phtml;shtml typeEmail eml Delivery-date:Outlook Express dbx 0xCFAD12FEOutlookpst!BDNMS Office/OLE2 doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1MS Access mdb;mda;mde;mdt Standard JWordPerfect wpd 0xFF575043OpenOffice Writer sxw writerOpenOffice Calc sxc calcOpenOffice Math sxm mathOpenOffice Impress sxi impressOpenOffice Draw sxd drawAdobe FrameMaker fm <MAKERFILEPostScript eps.or.ps;ps;eps %!PS-AdobeAdobe Acrobat pdf %PDF-1.Quicken qdf 0xAC9EBD8F QuickBooks Backup qbb 0x458600000600Sage sly.or.srt.or.slt;sly;srt;slt 0x53520100Sage Backup 1 SAGEBACKUPLotus WordPro v9 lwp 0x576F726450726FLotus 123 v9 123 0x00001A00051004Lotus 123 v5 wk4 0x00001A0002100400Lotus 123 v3 wk3 0x00001A0000100400Lotus 123 v1 wk1 0x2000604060Windows Password pwl 0xE3828596ZIP Archive zip;jar 0x504B0304ZIP Archive (outdated) zip 0x504B3030RAR Archive rar Rar!GZ Archive gz;tgz 0x1F8B08BZIP Archive bz2 BZhARJ Archive arj 0x60EA7-ZIP Archive 7z 7z集'Wave wav WAVEA VI avi AVIReal Audio ram;ra .ra?0Real Media rm .RMFMPEG mpg;mpeg 0x000001BAMPEG mpg;mpeg 0x000001B3Quicktime mov moovWindows Media asf 0x3026B2758E66CF11MIDI mid MThdWin32 Executable exe;dll;drv;vxd;sys;ocx;vbx MZWin16 Executable exe;dll;drv;vxd;sys;ocx;vbx MZELF Executable elf;; 0x7F454C4601010100各种文件类型文件头标志位详细列表FFD8FFFE00, .JPEG;.JPE;.JPG, "JPG Graphic File"FFD8FFE000, .JPEG;.JPE;.JPG, "JPG Graphic File" 474946383961, .gif, "GIF 89A"474946383761, .gif, "GIF 87A"424D, .bmp, "Windows Bitmap"4D5A, .exe;.com;.386;.ax;.acm;.sys;.dll;.drv;.flt;.fon;.ocx;.scr;.lrc;.vxd; .cpl;.x32, "Executable File"504B0304, .zip, "Zip Compressed"3A42617365, .cnt, ""D0CF11E0A1B11AE1, .doc;.xls;.xlt;.ppt;.apr, "MS Compound Document v1 or Lotus Approach APR file" 0100000058000000, .emf, ""03000000C466C456, .evt, ""3F5F0300, .gid;.hlp;.lhp, "Windows Help File"1F8B08, .gz, "GZ Compressed File"28546869732066696C65, .hqx, ""0000010000, .ico, "Icon File"4C000000011402, .lnk, "Windows Link File"25504446, .pdf, "Adobe PDF File"5245474544495434, .reg, ""7B5C727466, .rtf, "Rich Text Format File"lh, .lzh, "Lz compression file"MThd, .mid, ""0A050108, .pcx, ""25215053, .eps, "Adobe EPS File"2112, .ain, "AIN Archive File"1A02, .arc, "ARC/PKPAK Compressed 1"1A03, .arc, "ARC/PKPAK Compressed 2"1A04, .arc, "ARC/PKPAK Compressed 3"1A08, .arc, "ARC/PKPAK Compressed 4"1A09, .arc, "ARC/PKPAK Compressed 5"60EA, .arj, "ARJ Compressed"41564920, .avi, "Audio Video Interleave (AVI)"425A68, .bz;.bz2, "Bzip Archive"49536328, .cab, "Cabinet File"4C01, .obj, "Compiled Object Module"303730373037, .tar;.cpio, "CPIO Archive File"4352555348, .cru;.crush, "CRUSH Archive File"3ADE68B1, .dcx, "DCX Graphic File"1F8B, .gz;.tar;.tgz, "Gzip Archive File"91334846, .hap, "HAP Archive File"3C68746D6C3E, .htm;.html, "HyperText Markup Language 1"3C48544D4C3E, .htm;.html, "HyperText Markup Language 2"3C21444F4354, .htm;.html, "HyperText Markup Language 3"100, .ico, "ICON File"5F27A889, .jar, "JAR Archive File"2D6C68352D, .lha, "LHA Compressed"20006040600, .wk1;.wks, "Lotus 123 v1 Worksheet"00001A0007800100, .fm3, "Lotus 123 v3 FMT file"00001A0000100400, .wk3, "Lotus 123 v3 Worksheet" 20006800200, .fmt, "Lotus 123 v4 FMT file"00001A0002100400, .wk4, "Lotus 123 v5"5B7665725D, .ami, "Lotus Ami Pro"300000041505052, .adx, "Lotus Approach ADX file"1A0000030000, .nsf;.ntf, "Lotus Notes Database/Template"4D47582069747064, .ds4, "Micrografix Designer 4"4D534346, .cab, "Microsoft CAB File Format"4D546864, .mid, "Midi Audio File"000001B3, .mpg;.mpeg, "MPEG Movie"0902060000001000B9045C00, .xls, "MS Excel v2" 0904060000001000F6055C00, .xls, "MS Excel v4"7FFE340A, .doc, "MS Word"1234567890FF, .doc, "MS Word 6.0"31BE000000AB0000, .doc, "MS Word for DOS 6.0"1A00000300001100, .nsf, "Notes Database"7E424B00, .psp, "PaintShop Pro Image File"504B0304, .zip, "PKZIP Compressed"89504E470D0A, .png, "PNG Image File"6D646174, .mov, "QuickTime Movie"6D646174, .qt, "Quicktime Movie File"52617221, .rar, "RAR Archive File"2E7261FD, .ra;.ram, "Real Audio File"EDABEEDB, .rpm, "RPM Archive File"2E736E64, .au, "SoundMachine Audio File"53495421, .sit, "Stuffit v1 Archive File"53747566664974, .sit, "Stuffit v5 Archive File"1F9D, .z, "TAR Compressed Archive File"49492A, .tif;.tiff, "TIFF (Intel)"4D4D2A, .tif;.tiff, "TIFF (Motorola)"554641, .ufa, "UFA Archive File"57415645666D74, .wav, "Wave Files"D7CDC69A, .wmf, "Windows Meta File"4C000000, .lnk, "Windows Shortcut (Link File)"504B3030504B0304, .zip, "WINZIP Compressed"FF575047, .wpg, "WordPerfect Graphics"FF575043, .wp, "WordPerfect v5 or v6"3C3F786D6C, .xml, "XML Document"FFFE3C0052004F004F0054005300540055004200, .xml, "XML Document (ROOTSTUB)"3C21454E54495459, .dtd, "XML DTD"5A4F4F20, .zoo, "ZOO Archive File"通过文件头标识判断图片格式最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE里面查看它的16进制,果然,两个图片的文件头根本就不一样,这不是欺负人嘛,害我白白浪费了半天的时间,差点要重新编译内核。
所有类型文件的文件头标志

各类文件的文件头标志1、从Ultra-edit-32中提取出来的JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photoshop (psd),文件头:38425053Rich Text Format (rtf),文件头:7B5C727466XML (xml),文件头:3C3F786D6CHTML (html),文件头:68746D6C3EEmail [thorough only] (eml),文件头:44656C69766572792D646174653A Outlook Express (dbx),文件头:CFAD12FEC5FD746FOutlook (pst),文件头:2142444EMS Word/Excel (xls.or.doc),文件头:D0CF11E0MS Access (mdb),文件头:5374616E64617264204AWordPerfect (wpd),文件头:FF575043Postscript (eps.or.ps),文件头:252150532D41646F6265Adobe Acrobat (pdf),文件头:255044462D312EQuicken (qdf),文件头:AC9EBD8FWindows Password (pwl),文件头:E3828596ZIP Archive (zip),文件头:504B0304RAR Archive (rar),文件头:52617221Wave (wav),文件头:57415645AVI (avi),文件头:41564920Real Audio (ram),文件头:2E7261FDReal Media (rm),文件头:2E524D46MPEG (mpg),文件头:000001BAMPEG (mpg),文件头:000001B3Quicktime (mov),文件头:6D6F6F76Windows Media (asf),文件头:3026B2758E66CF11 MIDI (mid),文件头:4D5468642、从winhex中取出的文件头列表File Type ExtensionsHeaderJPEG jpg;jpeg 0xFFD8FFPNG png 0x89504E470D0A1A0AGIF gif GIF8TIFF tif;tiff 0x49492A00TIFF tif;tiff 0x4D4D002ABit map bmp BMAOL ART art 0x4A47040E000000AOL ART art 0x4A47030E000000PC Paintbrush pcx 0x0A050108Graphics Metafile wmf 0xD7CDC69AGraphics Metafile wmf 0x01000900Graphics Metafile wmf 0x02000900Enhanced Metafile emf 0x0100000058000000Corel Draw cdr CDRCAD dwg 0x41433130Adobe Photoshop psd 8BPSRich Text Format rtf rtfXML xmlHTML html;htm;php;php3;php4;phtml;shtml typeEmail eml Delivery-date:Outlook Express dbx 0xCFAD12FEOutlookpst!BDNMS Office/OLE2 doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1MS Access mdb;mda;mde;mdt Standard JWordPerfect wpd 0xFF575043OpenOffice Writer sxw writerOpenOffice Calc sxc calcOpenOffice Math sxm mathOpenOffice Impress sxi impressOpenOffice Draw sxd drawAdobe FrameMaker fm <MAKERFILEPostScript eps.or.ps;ps;eps %!PS-AdobeAdobe Acrobat pdf %PDF-1.Quicken qdf 0xAC9EBD8FQuickBooks Backup qbb 0x458600000600Sage sly.or.srt.or.slt;sly;srt;slt 0x53520100Sage Backup 1 SAGEBACKUPLotus WordPro v9 lwp 0x576F726450726FLotus 123 v9 123 0x00001A00051004Lotus 123 v5 wk4 0x00001A0002100400Lotus 123 v3 wk3 0x00001A0000100400Lotus 123 v1 wk1 0x2000604060Windows Password pwl 0xE3828596ZIP Archive zip;jar 0x504B0304ZIP Archive (outdated) zip 0x504B3030RAR Archive rar Rar!GZ Archive gz;tgz 0x1F8B08BZIP Archive bz2 BZhARJ Archive arj 0x60EA7-ZIP Archive 7z 7z集'Wave wav WAVEAVI avi AVIReal Audio ram;ra .ra?0Real Media rm .RMFMPEG mpg;mpeg 0x000001BAMPEG mpg;mpeg 0x000001B3Quicktime mov moovWindows Media asf 0x3026B2758E66CF11MIDI mid MThdWin32 Executable exe;dll;drv;vxd;sys;ocx;vbx MZWin16 Executable exe;dll;drv;vxd;sys;ocx;vbx MZELF Executable elf;; 0x7F454C4601010100各种文件类型文件头标志位详细列表FFD8FFFE00, .JPEG;.JPE;.JPG, "JPG Graphic File"FFD8FFE000, .JPEG;.JPE;.JPG, "JPG Graphic File"474946383961, .gif, "GIF 89A"474946383761, .gif, "GIF 87A"424D, .bmp, "Windows Bitmap"4D5A, .exe;.com;.386;.ax;.acm;.sys;.dll;.drv;.flt;.fon;.ocx;.scr;.lrc;.v xd;.cpl;.x32, "Executable File"504B0304, .zip, "Zip Compressed"3A42617365, .cnt, ""D0CF11E0A1B11AE1, .doc;.xls;.xlt;.ppt;.apr, "MS Compound Document v1 or Lotus Approach APR file"0100000058000000, .emf, ""03000000C466C456, .evt, ""3F5F0300, .gid;.hlp;.lhp, "Windows Help File"1F8B08, .gz, "GZ Compressed File"28546869732066696C65, .hqx, ""0000010000, .ico, "Icon File"4C000000011402, .lnk, "Windows Link File"25504446, .pdf, "Adobe PDF File"5245474544495434, .reg, ""7B5C727466, .rtf, "Rich Text Format File"lh, .lzh, "Lz compression file"MThd, .mid, ""0A050108, .pcx, ""25215053, .eps, "Adobe EPS File"2112, .ain, "AIN Archive File"1A02, .arc, "ARC/PKPAK Compressed 1"1A03, .arc, "ARC/PKPAK Compressed 2"1A04, .arc, "ARC/PKPAK Compressed 3"1A08, .arc, "ARC/PKPAK Compressed 4"1A09, .arc, "ARC/PKPAK Compressed 5"60EA, .arj, "ARJ Compressed"41564920, .avi, "Audio Video Interleave (AVI)"425A68, .bz;.bz2, "Bzip Archive"49536328, .cab, "Cabinet File"4C01, .obj, "Compiled Object Module"303730373037, .tar;.cpio, "CPIO Archive File" 4352555348, .cru;.crush, "CRUSH Archive File"3ADE68B1, .dcx, "DCX Graphic File"1F8B, .gz;.tar;.tgz, "Gzip Archive File"91334846, .hap, "HAP Archive File"3C68746D6C3E, .htm;.html, "HyperText Markup Language 1" 3C48544D4C3E, .htm;.html, "HyperText Markup Language 2" 3C21444F4354, .htm;.html, "HyperText Markup Language 3"100, .ico, "ICON File"5F27A889, .jar, "JAR Archive File"2D6C68352D, .lha, "LHA Compressed"20006040600, .wk1;.wks, "Lotus 123 v1 Worksheet"00001A0007800100, .fm3, "Lotus 123 v3 FMT file"00001A0000100400, .wk3, "Lotus 123 v3 Worksheet" 20006800200, .fmt, "Lotus 123 v4 FMT file"00001A0002100400, .wk4, "Lotus 123 v5"5B7665725D, .ami, "Lotus Ami Pro"300000041505052, .adx, "Lotus Approach ADX file"1A0000030000, .nsf;.ntf, "Lotus Notes Database/Template" 4D47582069747064, .ds4, "Micrografix Designer 4"4D534346, .cab, "Microsoft CAB File Format"4D546864, .mid, "Midi Audio File"000001B3, .mpg;.mpeg, "MPEG Movie"0902060000001000B9045C00, .xls, "MS Excel v2" 0904060000001000F6055C00, .xls, "MS Excel v4"7FFE340A, .doc, "MS Word"1234567890FF, .doc, "MS Word 6.0"31BE000000AB0000, .doc, "MS Word for DOS 6.0"1A00000300001100, .nsf, "Notes Database"7E424B00, .psp, "PaintShop Pro Image File"504B0304, .zip, "PKZIP Compressed"89504E470D0A, .png, "PNG Image File"6D646174, .mov, "QuickTime Movie"6D646174, .qt, "Quicktime Movie File"52617221, .rar, "RAR Archive File"2E7261FD, .ra;.ram, "Real Audio File"EDABEEDB, .rpm, "RPM Archive File"2E736E64, .au, "SoundMachine Audio File"53495421, .sit, "Stuffit v1 Archive File"53747566664974, .sit, "Stuffit v5 Archive File"1F9D, .z, "TAR Compressed Archive File"49492A, .tif;.tiff, "TIFF (Intel)"4D4D2A, .tif;.tiff, "TIFF (Motorola)"554641, .ufa, "UFA Archive File"57415645666D74, .wav, "Wave Files"D7CDC69A, .wmf, "Windows Meta File"4C000000, .lnk, "Windows Shortcut (Link File)"504B3030504B0304, .zip, "WINZIP Compressed"FF575047, .wpg, "WordPerfect Graphics"FF575043, .wp, "WordPerfect v5 or v6"3C3F786D6C, .xml, "XML Document"FFFE3C0052004F004F0054005300540055004200, .xml, "XML Document (ROOTSTUB)" 3C21454E54495459, .dtd, "XML DTD"5A4F4F20, .zoo, "ZOO Archive File"通过文件头标识判断图片格式最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE里面查看它的16进制,果然,两个图片的文件头根本就不一样,这不是欺负人嘛,害我白白浪费了半天的时间,差点要重新编译内核。
JAVA根据文件头判断文件类型(持续更新)

JAVA根据⽂件头判断⽂件类型(持续更新) 举个例⼦,⼀张jpg格式的图⽚直接修改后缀名为png也可以打开,但当⼀些⽅法需要调⽤后缀为png格式图⽚的时候,再使⽤这个⽂件,则会出现报错。
是因为这张图⽚的本质没有变,他还是个png格式的⽂件。
那么,该如何去掉⽂件名的伪装,拿到⽂件的真实格式呢? 使⽤java.io包中的FileInputStream类。
通过读取原始字节流,根据字节流头部获取到⽂件格式。
从⽽判断⼀个⽂件是否被修改过。
下⾯提供⼀个可⾏⽅法// file path String path = "";File file = new File(path);FileInputStream fs = new FileInputStream(file);// 具体需要多⼤的数组要根据具体⽂件来判断,这⾥先定义⼤⼩为10,⼤部分⽂件定义3够⽤byte[] b = new byte[10];fs.read(b,0,b.length);String suffix = checkFileType(bytesToHexString(b)); 这⾥给出⼀个讲数组转换成为⼗六进制字符串的⽅法public static String bytesToHexString(byte[] b){StringBuilder stringBuilder = new StringBuilder();if (src == null || src.length <= 0) {return null;}for (int i = 0; i < src.length; i++) {for (int v: b) {int v = src[i] & 0xFF;String hv = Integer.toHexString(v);if (hv.length() < 2) {stringBuilder.append(0);}stringBuilder.append(hv);}return stringBuilder.toString();}再定义⼀个枚举类点击查看代码public static String checkFileType(String x) {switch (x) {case "255044462d312e360d25":return "pdf";case "e69292e58f91e8bebee6":return "txt";case "d0cf11e0a1b11ae10000":return "doc,ppt,xls";case "504b0304140006000800":return "docx,xlsx";case "504b03040a0000000000":return "pptx,jar";case "89504e470d0a1a0a0000":return "png";case "ffd8ffe000104a464946":return "jpg,jpeg";case "47494638396126026f01":return "gif";case "49492a00227105008037":return "tif,tiff";//16位⾊图case "424d228c010*********":return "bmp";//24位⾊图case "424d8240090000000000":return "bmp";//256位⾊图case "424d8e1be30000000000":return "bmp";case "3c21444f435459504520":return "html";case "526172211a0700cf9073":return "rar";case "504b0304140000000800":return "zip";case "235468697320636f6e66":return "ini";case "4d5a9000030000000400":return "exe";case "49443303000000002176":return "mp3";case "49443303000000034839":return "mp3";case "00000020667479706973":return "mp4";case "000001ba210001000180":return "mpg";case "3026b2758e66cf11a6d9":return "wmv,asf";case "52494646d07d60074156":return "avi";case "464c5601050000000900":return "flv,f4v";case "4d546864000000060001":return "mid,midi";default:return "0000";}}View Code后续还会补充各种各样的⽂件类型。
文件类型识别方法-概述说明以及解释

文件类型识别方法-概述说明以及解释1.引言1.1 概述概述部分的内容可以按照以下方式编写:概述部分旨在简要介绍文件类型识别方法的背景和意义。
随着信息技术的快速发展和互联网的广泛应用,人们处理和共享的文件类型越来越多样化。
正确地识别文件类型对于信息安全、数据管理和系统操作都至关重要。
然而,由于不同文件类型的具体结构和格式存在差异,人工手动分辨文件类型往往耗时且容易出错。
为了解决这一问题,文件类型识别方法应运而生。
文件类型识别是利用计算机技术和算法来自动识别给定文件的具体类型。
通过对文件的内容、扩展名、魔数(Magic Number)、元数据等进行分析和比对,文件类型识别方法可以有效区分不同文件类型,提高文件处理的效率和准确性。
本文将详细介绍几种常见的文件类型识别方法。
首先,会介绍基于文件内容的识别方法,通过分析文件的二进制数据来确定其类型。
其次,会讨论基于文件扩展名和元数据的识别方法,利用文件的命名约定和存储的附加信息来推测文件类型。
最后,则会探讨基于魔数的识别方法,通过读取文件的开头几个字节,识别其中特定的标志位从而确定文件类型。
本文旨在帮助读者全面了解文件类型识别方法,掌握其基本原理和常见应用场景。
通过对比和分析各种识别方法的优缺点,读者可以选择适合自己需求的文件类型识别方法,并将其应用到实际工作中,提高文件处理的效率和准确性。
通过本文的学习,读者可以更加深入地了解文件类型识别方法的工作原理和实际应用。
此外,本文还将对未来文件类型识别方法的发展进行展望,并总结整个文中的内容和观点,为读者提供一个全面的文件类型识别方法研究的视角。
1.2 文章结构本文主要介绍文件类型识别方法。
文章结构如下:引言部分首先对问题进行概述,说明文件类型识别的背景和重要性。
接着,介绍了本文的目的,即讨论不同的文件类型识别方法。
正文部分将着重介绍三种文件类型识别方法。
在2.1节中,将详细介绍文件类型识别方法1,包括其原理、步骤和应用领域。
通过文件头标识判断图片格式

通过文件头标识判断图片格式【总结】2010-05-21 09:45:42| 分类:默认分类| 标签:|举报|字号大中小订阅最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE 里面查看它的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 003.PNG- 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A4.GIF- 文件头标识 (6 bytes) 47 49 46 38 39(37) 61G I F 8 9 (7) a5.BMP- 文件头标识 (2 bytes) 42 4DB M6.PCX- 文件头标识 (1 bytes) 0A7.TIFF- 文件头标识 (2 bytes) 4D 4D 或 49 498.ICO- 文件头标识 (8 bytes) 00 00 01 00 01 00 20 209.CUR- 文件头标识 (8 bytes) 00 00 02 00 01 00 20 2010.IFF- 文件头标识 (4 bytes) 46 4F 52 4DF O R M11.ANI- 文件头标识 (4 bytes) 52 49 46 46R I F F根据这些文件头标识的收集,我可以写一个识别图像格式的模块了。
所有类型文件的文件头标志

各类文件的文件头标志1、从Ultra —edit-32 中提取出来的JPEG (jpg),文件头:FFD8FFPNG (png),文件头:89504E47GIF (gif),文件头:47494638TIFF (tif),文件头:49492A00Windows Bitmap (bmp),文件头:424DCAD (dwg),文件头:41433130Adobe Photoshop (psd),文件头:38425053Rich Text Format (rtf) ,文件头:7B5C727466XML (xml),文件头:3C3F786D6CHTML (html),文件头:68746D6C3EEmail [thorough on ly] (eml) ,文件头:44656C69766572792D646174653A Outlook Express (dbx),文件头:CFAD12FEC5FD746FOutlook (pst),文件头:2142444EMS Word/Excel (xls.or.doc) ,文件头:D0CF11E0MS Access (mdb),文件头:5374616E64617264204AWordPerfect (wpd),文件头:FF575043Postscript (eps.or.ps) ,文件头:252150532D41646F6265Adobe Acrobat (pdf),文件头:255044462D312EQuicke n (qdf),文件头:AC9EBD8FWindows Password (pwl),文件头:E3828596ZIP Archive (zip) ,文件头:504B0304RAR Archive (rar),文件头:52617221Wave (wav),文件头:57415645AVI (avi),文件头:41564920Real Audio (ram),文件头:2E726 仆DReal Media (rm),文件头:2E524D46MPEG (mpg)文件头:000001BAMPEG (mpg)文件头:000001B3Quicktime (mov),文件头:6D6F6F76Win dows Media (asf),文件头:3026B2758E66CF11 MIDI (mid),文件头:4D5468642、从win hex中取出的文件头列表File Type Exte nsion sHeaderJPEG jpg;jpeg 0xFFD8FFPNG png 0x89504E470D0A1A0AGIF gif GIF8TIFF tif;tiff 0x49492A00TIFF tif;tiff 0x4D4D002ABit map bmp BMAOL ART art 0x4A47040E000000AOL ART art 0x4A47030E000000PC Pain tbrush pcx 0x0A050108Graphics Metafile wmf 0xD7CDC69AGraphics Metafile wmf 0x01000900Graphics Metafile wmf 0x02000900Enhan ced Metafile emf 0x0100000058000000Corel Draw cdr CDRCAD dwg 0x41433130Adobe Photoshop psd 8BPSRich Text Format rtf rtfXML xmlHTML html;htm;php;php3;php4;phtml;shtml typeEmail eml Delivery-date:Outlook Express dbx 0xCFAD12FEOutlookpst!BDNMS Office/OLE2 doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1MS Access mdb;mda;mde;mdt Stan dard JWordPerfect wpd 0xFF575043Ope nO ffice Writer sxw writerOpe nO ffice Calc sxc calcOpe nO ffice Math sxm mathOpe nO ffice Impress sxi impressOpe nO ffice Draw sxd drawAdobe FrameMaker fm vMAKERFILEPostScript eps.or.ps;ps;eps %!PS-AdobeAdobe Acrobat pdf %PDF-1.Quicke n qdf 0xAC9EBD8FQuickBooks Backup qbb 0x458600000600Sage sly.or.srt.or.slt;sly;srt;slt 0x53520100Sage Backup 1 SAGEBACKUPLotus WordPro v9 Iwp 0x576F726450726F Lotus 123 v9 123 0x00001A00051004Lotus 123 v5 wk4 0x00001A0002100400Lotus 123 v3 wk3 0x00001A0000100400Lotus 123 v1 wk1 0x2000604060Win dows Password pwl 0xE3828596ZIP Archive zip;jar 0x504B0304ZIP Archive (outdated) zip 0x504B3030RAR Archive rar Rar!GZ Archive gz;tgz 0x1F8B08BZIP Archive bz2 BZhARJ Archive arj 0x60EA7-ZIP Archive 7z 7z 集'Wave wav WAVEAVI avi AVIReal Audio ram;ra .ra?0Real Media rm 只MFMPEG mpg;mpeg 0x000001BAMPEG mpg;mpeg 0x000001B3Quicktime mov moovWin dows Media asf 0x3026B2758E66CF11 MIDI mid MThdWin32 Executable exe;dll;drv;vxd;sys;ocx;vbx MZWin16 Executable exe;dll;drv;vxd;sys;ocx;vbx MZELF Executable elf;; 0x7F454C4601010100各种文件类型文件头标志位详细列表FFD8FFFE00, .JPEG;.JPE;.JPG, "JPG Graphic File"FFD8FFE000, .JPEG;.JPE;.JPG, "JPG Graphic File"474946383961, .gif, "GIF 89A"474946383761, .gif, "GIF 87A"424D, .bmp, "Win dows Bitmap"4D5A, .exe;.com;.386;.ax;.acm;.sys;.dll;.drv;.flt;.fo n;.ocx;.scr; .l rc;.vxd;.cpl;.x32, "Executable File"504B0304, .zip, "Zip Compressed"3A42617365, .cnt,""D0CF11E0A1B11AE1, .doc;.xls;.xlt;.ppt;.apr, "MS Compou nd Docume nt v1 or Lotus Approach APR file"0100000058000000, .emf,""03000000C466C456, .evt,""3F5F0300, .gid;.hlp;.lhp, "Win dows Help File"1F8B08, .gz, "GZ Compressed File"28546869732066696C65, .hqx,""0000010000, .ico, "Icon File"4C000000011402, .lnk, "Windows Link File"25504446, .pdf, "Adobe PDF File" 5245474544495434, .reg,7B5C727466, .rtf, "Rich Text Format File"Ih,」zh, "Lz compressi on file"MThd, .mid,""0A050108, .pcx,""25215053, .eps, "Adobe EPS File"2112, .ain, "AIN Archive File"1A02, .arc, "ARC/PKPAK Compressed 1"1A03, .arc, "ARC/PKPAK Compressed 2"1A04, .arc, "ARC/PKPAK Compressed 3"1A08, .arc, "ARC/PKPAK Compressed 4"1A09, .arc, "ARC/PKPAK Compressed 5"60EA, .arj, "ARJ Compressed"41564920, .avi, "Audio Video In terleave (AVI)"425A68, .bz;.bz2, "Bzip Archive"49536328, .cab, "Cabinet File"4C01, .obj, "Compiled Object Module"303730373037, .tar;.cpio, "CPIO Archive File"4352555348, .cru;.crush, "CRUSH Archive File"3ADE68B1, .dcx, "DCX Graphic File"1F8B, .g z; .tar;.tg z, "Gzip Archive File"91334846, .hap, "HAP Archive File"3C68746D6C3E, .htm;.html, "HyperText Markup Lan guage 1"3C48544D4C3E, .htm;.html, "HyperText Markup Lan guage 2"3C21444F4354, .htm;.html, "HyperText Markup Lan guage 3" 100, .ico, "ICON File"2D6C68352D,」ha, "LHA Compressed"20006040600, .wk1;.wks, "Lotus 123 v1 Worksheet"00001A0007800100, .fm3, "Lotus 123 v3 FMT file"00001A0000100400, .wk3, "Lotus 123 v3 Worksheet"20006800200, .fmt, "Lotus 123 v4 FMT file"00001A0002100400, .wk4, "Lotus 123 v5"5B7665725D, .ami, "Lotus Ami Pro"300000041505052, .adx, "Lotus Approach ADX file"1A0000030000, .nsf;.ntf, "Lotus Notes Database/Template"4D47582069747064, .ds4, "Micrografix Desig ner 4"4D534346, .cab, "Microsoft CAB File Format"4D546864, .mid, "Midi Audio File"000001B3, .mpg;.mpeg, "MPEG Movie"0902060000001000B9045C00, .xls, "MS Excel v2"0904060000001000F6055C00, .xls, "MS Excel v4"7FFE340A, .doc, "MS Word"1234567890FF, .doc, "MS Word 6.0"31BE000000AB0000, .doc, "MS Word for DOS 6.0"1A00000300001100, .nsf, "Notes Database"7E424B00, .psp, "Pa in tShop Pro Image File"504B0304, .zip, "PKZIP Compressed" 89504E470D0A, .png, "PNG Image File" 6D646174, .mov, "QuickTime Movie"6D646174, .qt, "Quicktime Movie File"2E7261FD, .ra;.ram, "Real Audio File"EDABEEDB, .rpm, "RPM Archive File"2E736E64, .au, "Sou ndMachi ne Audio File"53495421, .sit, "Stuffit v1 Archive File"53747566664974, .sit, "Stuffit v5 Archive File"1F9D, .z, "TAR Compressed Archive File"49492A, .tif;.tiff, "TIFF (In tel)"4D4D2A, .tif;.tiff, "TIFF (Motorola)"554641, .ufa, "UFA Archive File"57415645666D74, .wav, "Wave Files"D7CDC69A, .wmf, "Win dows Meta File"4C000000, .1nk, "Win dows Shortcut (Li nk File)"504B3030504B0304, .zip, "WINZIP Compressed"FF575047, .wpg, "WordPerfect Graphics"FF575043, .wp, "WordPerfect v5 or v6"3C3F786D6C, .xml, "XML Docume nt"FFFE3C0052004F004F0054005300540055004200, .xml, "XML Docume nt (ROOTSTUB)"3C21454E54495459, .dtd, "XML DTD"5A4F4F20, .zoo, "ZOO Archive File"通过文件头标识判断图片格式最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE里面查看它的16进制,果然,两个图片的文件头根本就不一样,这不是欺负人嘛,害我白白浪费了半天的时间,差点要重新编译内核。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
通过文件头标识判断图片格式【总结】
2010-05-21 09:45:42| 分类:默认分类| 标签:|举报|字号大中小订阅最近在做东西的时候遇到了点问题,在加载图片的时候,加载失败,后缀
都是jpg格式,但换个图片就可以了,为此,怀疑图片格式有问题,遂拖到UE 里面查看它的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
根据这些文件头标识的收集,我可以写一个识别图像格式的模块了。
但是
在写这个模块之前可以对收集到的文件头标识进行优化,使得程序中字符串比对次数尽量的少。
1.JPEG我们知需要比对文件头的$ff, $d8这两个字符,而不用读取最后的两个结束标识了。
2.TGA,ICO,CUR只需比对第三个与第五个字符即可。
3.PNG比对[89][50]这两个字符。
4.GIF比对[47][49][46]与第五个字符。
废话不多说了,利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的判断这个文件是什么类型的文件,例如
jpg文件是 FFD8 (从低位到高位就要反过来 D8FF 下面都是一样)
BMP文件是 424D ---4D42
其他的我就不一一列举了,想知道跟多文件类型分别是用什么字符作为文件的开头的话,下载个C32asm或者UE等这类16进制编辑器就可以看到。