'枚举图片格式种类 Public Enum ImageForm [BMP] = 0 [JPEG] = 1 [GIF87] = 2 [GIF89] = 3 [PNG] = 4 [TGA Normal] = 5 'TGA未压缩 [TGA RLE] = 6 'TGA经过RLE压缩后的 [PCX] = 7 [TIFF] = 8 [ICO] = 9 [CUR] = 10 [IFF] = 11 [ANI] = 12 [Other] = 13 [FileError] = 14 End Enum '----------------------------------------------------------------------- '----------------------------------------------------------------------- '-- 标题:获取图片的格式 '-- 作者:BEAR-BEN '-- 制作日期:2007-8-5 '-- 支持的格式:BMP,JPEG,GIF,PNG,TGA,PCX,TIFF, ' ICO,CUR,IFF,ANI 共11种格式 '-- 版本:1.0 '-- 使用者请保留版权,谢谢! '----------------------------------------------------------------------- '----------------------------------------------------------------------- Public Function GetImageFileForm(ImageFilePath As String) As ImageForm Dim FileHeader(5) As Byte, FileNumber As Integer GetImageFileForm = FileError If Dir(ImageFilePath) <> "" Then '判断图片文件是否存在 FileNumber = FreeFile Open ImageFilePath For Binary As #FileNumber Get FileNumber, , FileHeader() '二进制流读取图片前5个字符 Close FileNumber GetImageFileForm = Other '文件头标识识别 If (FileHeader(0) = 66) And (FileHeader(1) = 77) Then GetImageFileForm = BMP Exit Function End If If (FileHeader(0) = 255) And (FileHeader(1) = 216) Then GetImageFileForm = JPEG Exit Function End If If (FileHeader(0) = 71) And (FileHeader(1) = 73) And (FileHeader(2) = 70) And (FileHeader(4) = 57) Then GetImageFileForm = GIF89 Exit Function End If If (FileHeader(0) = 71) And (FileHeader(1) = 73) And (FileHeader(2) = 70) And (FileHeader(4) = 55) Then GetImageFileForm = GIF87 Exit Function End If If (FileHeader(0) = 137) And (FileHeader(1) = 80) Then GetImageFileForm = PNG Exit Function End If If (FileHeader(0) = 73) And (FileHeader(1) = 73) Then GetImageFileForm = TIFF 'TIFF 摩托罗拉 Exit Function End If If (FileHeader(0) = 77) And (FileHeader(1) = 77) Then GetImageFileForm = TIFF 'TIFF Intel Exit Function End If If (FileHeader(2) = 1) And (FileHeader(4) = 1) Then GetImageFileForm = ICO Exit Function End If If (FileHeader(2) = 2) And (FileHeader(4) = 1) Then GetImageFileForm = CUR Exit Function End If If (FileHeader(0) = 82) And (FileHeader(1) = 73) And (FileHeader(2) = 70) And (FileHeader(3) = 70) Then GetImageFileForm = ANI Exit Function End If If (FileHeader(2) = 2) And (FileHeader(4) = 0) Then GetImageFileForm = [TGA Normal] Exit Function End If If (FileHeader(2) = 16) And (FileHeader(4) = 0) Then GetImageFileForm = [TGA RLE] Exit Function End If If (FileHeader(0) = 10) Then GetImageFileForm = PCX Exit Function End If End If End Function //delphi/8991