|
![]() |
名片设计 CorelDRAW Illustrator AuotoCAD Painter 其他软件 Photoshop Fireworks Flash |
|
网上找的一段代码,把它编译成组件就可以用了,还支持png \\\'supported in this version: \\\'JPEG \\\'GIF \\\'PNG \\\'This routine does not require any royalty fees for Unisys as it \\\'does nothing with the compressed part of GIF files. It simply reads \\\'4 bytes to determine image size. Option Explicit Public WImg As Long Public HImg As Long Public Type ImageSize Width As Long Height As Long End Type Public Sub GetImageSize(sFileName As String) On Error Resume Next \\\'you\\\'ll want to change this Dim iFN As Integer Dim bTemp(3) As Byte Dim lFlen As Long Dim lPos As Long Dim bHmsb As Byte Dim bHlsb As Byte Dim bWmsb As Byte Dim bWlsb As Byte Dim bBuf(7) As Byte Dim bDone As Byte Dim iCount As Integer lFlen = FileLen(sFileName) iFN = FreeFile Open sFileName For Binary As iFN Get #iFN, 1, bTemp() \\\'PNG file If bTemp(0) = &H89 And bTemp(1) = &H50 And bTemp(2) = &H4E _ And bTemp(3) = &H47 Then Get #iFN, 19, bWmsb Get #iFN, 20, bWlsb Get #iFN, 23, bHmsb Get #iFN, 24, bHlsb \\\'GetImageSize.Width = CombineBytes(bWlsb, bWmsb) \\\'GetImageSize.Height = CombineBytes(bHlsb, bHmsb) WImg = CombineBytes(bWlsb, bWmsb) HImg = CombineBytes(bHlsb, bHmsb) End If \\\'GIF file If bTemp(0) = &H47 And bTemp(1) = &H49 And bTemp(2) = &H46 _ And bTemp(3) = &H38 Then Get #iFN, 7, bWlsb Get #iFN, 8, bWmsb Get #iFN, 9, bHlsb Get #iFN, 10, bHmsb \\\'GetImageSize.Width = CombineBytes(bWlsb, bWmsb) \\\'GetImageSize.Height = CombineBytes(bHlsb, bHmsb) WImg = CombineBytes(bWlsb, bWmsb) HImg = CombineBytes(bHlsb, bHmsb) End If \\\'JPEG file If bTemp(0) = &HFF And bTemp(1) = &HD8 And bTemp(2) = &HFF Then Debug.Print "JPEG" lPos = 3 Do Do Get #iFN, lPos, bBuf(1) Get #iFN, lPos + 1, bBuf(2) lPos = lPos + 1 Loop Until (bBuf(1) = &HFF And bBuf(2) <> &HFF) Or lPos > lFlen For iCount = 0 To 7 Get #iFN, lPos + iCount, bBuf(iCount) Next iCount If bBuf(0) >= &HC0 And bBuf(0) <= &HC3 Then bHmsb = bBuf(4) bHlsb = bBuf(5) bWmsb = bBuf(6) bWlsb = bBuf(7) bDone = 1 Else lPos = lPos + (CombineBytes(bBuf(2), bBuf(1))) + 1 End If Loop While lPos < lFlen And bDone = 0 \\\'GetImageSize.Width = CombineBytes(bWlsb, bWmsb) \\\'GetImageSize.Height = CombineBytes(bHlsb, bHmsb) WImg = CombineBytes(bWlsb, bWmsb) HImg = CombineBytes(bHlsb, bHmsb) End If Close iFN End Sub Private Function CombineBytes(lsb As Byte, msb As Byte) As Long CombineBytes = CLng(lsb + (msb * 256)) End Function 返回类别: 教程 上一教程: ASP中限制IP函数详解 下一教程: 如何直接调用EXCEL数据 您可以阅读与"如何获得JPG文件的实际尺寸"相关的教程: · 获得JPG文件的实际尺寸 · 如何获知页面上的图象的实际尺寸 · 利用ASP获得图象的实际尺寸的示例 · 使用ASP生成HTML文件的实例代码 · 关于ADODB.STREAM的写数据库数据到客户端文件的实践 |
![]() ![]() |
快精灵印艺坊 版权所有 |
首页![]() ![]() ![]() ![]() ![]() ![]() ![]() |