一个取图片尺寸的类,支持jpg,gif,png

原创 2004年10月27日 13:19:00
一个取图片尺寸的类,支持jpg,gif,png
<?XML:NAMESPACE PREFIX = SITEMANAGER-CMS_INCLUDE />

'I have released this source code into the public domain. You may use it
'with no strings attached.
'Just call GetImageSize with a string containing the filename, and
'it will return a user defined type 'ImageSize' (see below)
'Return values of 0 indicate an error of some sort. The error handling
'in this module is limited. There is *NO* error handling on the test
'form. This routine is limited to X or Y sizes of 32767 pixels, but that
'should not be a problem.

'Check back athttp://www.qtm.net/~davidc
'I may add support for more file types.

'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

一个取图片尺寸的类,支持jpg,gif,png

-->I have released this source code into the public domain. You may use itwith no strings attached.J...
  • webdesigning
  • webdesigning
  • 2004年09月18日 22:47
  • 664

常见图片格式jpg、jpeg、png、gif等有什么区别

文章转载来自:http://www.colabug.com/thread-1094700-1-1.html  jpg、jpeg、png、gif、bmp、tiff、ai、cdr、eps  对于做设计...
  • WEB_YH
  • WEB_YH
  • 2016年11月25日 11:37
  • 2054

JPG png GIF BMP图片格式的区别

本文来自互联网,主要简介一下JPG png GIF BMP格式的区别,请看文章!
  • itluochen
  • itluochen
  • 2016年08月20日 17:55
  • 3265

(笔记)webpack安装、配置、简单的项目打包、插件介绍

初次学习webpack的笔记,包含其安装配置、用法及一些小技巧
  • github_39304878
  • github_39304878
  • 2017年06月26日 01:12
  • 162

常见图片格式简单分析总结--JPG、PNG、GIF、BMP

1、JPG文件格式
  • u011414616
  • u011414616
  • 2014年08月15日 17:42
  • 1248

Java 转换png jpg gif格式图片的相互转换的实现

利用JDK原生支持对png jpg gif格式图片做相互转换,结合脚本就可以达到批量处理的能力,比PS来的快啊!而且是JAVA代码 在Windows和Linux上都可以用。import java.aw...
  • dengxu11
  • dengxu11
  • 2011年08月12日 16:53
  • 11257

Gif,png,jpg,webp几种图片格式整理

gif,png,jpg,webp图片格式详解
  • playboyanta123
  • playboyanta123
  • 2015年03月26日 20:51
  • 6887

FFmpeg 静图png or jpg加 Gif变Gif图的命令

ffmpeg -y -i img.jpg -vf 'movie=test.gif[wm];[in][wm]overlay=0:0[out]' -loop  0 img_gif.gif //l...
  • Nil88
  • Nil88
  • 2017年01月21日 16:19
  • 842

通过文件二进制信息判断图片类型(png,jpg,gif)

package lab.sodino.img; import java.io.IOException; import java.io.InputStream; import javax.microed...
  • llixiangjian
  • llixiangjian
  • 2016年11月25日 00:11
  • 961

Webp 和 png、jpg格式压缩

WebP 在各大互联网公司已经使用得很多了,国外的有 Google(自家的东西肯定要用啦,Chrome Store 甚至已全站使用 WebP)、Facebook 和 ebay,国内的有淘宝、腾讯和美团...
  • zhang_sinner
  • zhang_sinner
  • 2015年01月29日 16:54
  • 1021
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一个取图片尺寸的类,支持jpg,gif,png
举报原因:
原因补充:

(最多只允许输入30个字)