获得jpg文件的实际尺寸

2016-01-29 18:32 25 1 收藏

获得jpg文件的实际尺寸,获得jpg文件的实际尺寸

【 tulaoshi.com - ASP 】

  bask

把它编译成组件就可以用了,还支持png


'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 at http://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
    D

来源:https://www.tulaoshi.com/n/20160129/1506246.html

延伸阅读
标签: PS PS教程
本例为PS初学者实例系列教程,今天我们来学习使用Adobe Camera RAW打开JPG等格式文件的方法,有的朋友想使用ACR打开JPG文件,需要一个比较快捷的方法,使用PS的打开为命令可以很简单地实现这一点,在本文中将向朋友介绍几种方法~~~ 本系列教程由中国互助课堂专为PS新手制作,更多教程和练习请 点击这里 ,在这里有系列的教程、练习,并有老...
?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />   /** * jeruGraphics v 1.0 * * 看到一些动态生成图象的例子都是servlet完成的, * 而且程序很长,觉得不是无论从实用性还是可读性来说都不是太好。 * 这里给了段代码,命令行生成图象文件。这样是不是简单易用些呢? ...
ps中如何做一把和实际尺寸一样的尺子   ps中如何做一把和实际尺寸一样的尺子呢? 最终效果: Tulaoshi.com 1,填充背景为灰色,再填充图案 2,新建一层,使用渐变,更改图层模式为柔光,如图; 3,新建图层,创建矩形,添加图层样式,如图; 4,再建立如图所示的蓝色矩形,添加图层样式,如图; ...
要获得Windows的临时文件的存放路径,可以使用GetTempPathAPI函数。以下是该函数的声明: PrivateDeclareFunctionGetTempPathLib"kernel32"Alias_ "GetTempPathA"(ByValnBufferLengthAsLong,ByVallpBufferAsString)AsLong “BufferLength”是这个函数的第一个参数,它将指定接受传进来字符串的缓冲区大小。“Buffer...
网上好象这个例子还没有样,如果你用VC做一个人事部管理系统,不可能没有人员照片吧!能找到的例子中都是用BMP,不敢用! 这个例子用到了VC6.0和access2002(officeXP),涉及到ADO的用法,文件对话框的使用,一个CPicture类和一个buffer缓冲区。 一、我的ADO用法整理 1. stdafx.h头文件中加入: #import "c:program filescommon...

经验教程

70

收藏

54
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部