如何获得jpg文件的实际尺寸呢?

网上找的一段代码,把它编译成组件就可以用了,还支持png<br>
<br>
<br>
'I have released this source code into the public domain.  You may use it<br>
'with no strings attached.<br>
'Just call GetImageSize with a string containing the filename, and<br>
'it will return a user defined type 'ImageSize'  (see below)<br>
'Return values of 0 indicate an error of some sort.  The error handling<br>
'in this module is limited.  There is *NO* error handling on the test<br>
'form.  This routine is limited to X or Y sizes of 32767 pixels, but that<br>
'should not be a problem.<br>
<br>
'Check back at http://www.qtm.net/~davidc<br>
'I may add support for more file types.<br>
<br>
'supported in this version:<br>
'JPEG<br>
'GIF<br>
'PNG<br>
<br>
'This routine does not require any royalty fees for Unisys as it<br>
'does nothing with the compressed part of GIF files.  It simply reads<br>
'4 bytes to determine image size.<br>
<br>
Option Explicit<br>
Public WImg As Long<br>
Public HImg As Long<br>
Public Type ImageSize<br>
    Width As Long<br>
    Height As Long<br>
End Type<br>
<br>
Public Sub GetImageSize(sFileName As String)<br>
    On Error Resume Next        'you'll want to change this<br>
    Dim iFN As Integer<br>
    Dim bTemp(3) As Byte<br>
    Dim lFlen As Long<br>
    Dim lPos As Long<br>
    Dim bHmsb As Byte<br>
    Dim bHlsb As Byte<br>
    Dim bWmsb As Byte<br>
    Dim bWlsb As Byte<br>
    Dim bBuf(7) As Byte<br>
    Dim bDone As Byte<br>
    Dim iCount As Integer<br>
<br>
    lFlen = FileLen(sFileName)<br>
    iFN = FreeFile<br>
    Open sFileName For Binary As iFN<br>
    Get #iFN, 1, bTemp()<br>
        <br>
    'PNG file<br>
    If bTemp(0) = &H89 And bTemp(1) = &H50 And bTemp(2) = &H4E _<br>
    And bTemp(3) = &H47 Then<br>
        Get #iFN, 19, bWmsb<br>
        Get #iFN, 20, bWlsb<br>
        Get #iFN, 23, bHmsb<br>
        Get #iFN, 24, bHlsb<br>
        'GetImageSize.Width = CombineBytes(bWlsb, bWmsb)<br>
        'GetImageSize.Height = CombineBytes(bHlsb, bHmsb)<br>
        WImg = CombineBytes(bWlsb, bWmsb)<br>
        HImg = CombineBytes(bHlsb, bHmsb)<br>
    End If<br>
    <br>
    'GIF file<br>
    If bTemp(0) = &H47 And bTemp(1) = &H49 And bTemp(2) = &H46 _<br>
    And bTemp(3) = &H38 Then<br>
        Get #iFN, 7, bWls

时间: 2024-12-24 04:26:42

如何获得jpg文件的实际尺寸呢?的相关文章

获得jpg文件的实际尺寸

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)

mongodb存储图片和文件实践

可能很多人会问为何要用mongodb存储图片和文件,我的理由是mongodb作存储方便稳定易扩展,我们自己写的文件存储服务器肯定很LOW,除了含有巨量图片的大型系统,一般由公司自研图片存储外,大部分情况下,我们用mongodb足以应付.另外,很多人根本就不知道或者没尝试过用mongodb存储文件,而对方还故意问我为什么用这个.本文特此奉上代码并提供MongoDBClient与spring的集成. 工程结构代码 收藏代码 whatsmars-common |-src |-main |-java |

通过对BMP 文件头取图片的实际尺寸MM

问题描述 已取得某一文件的头信息如下biBitCount8biClrImportant256biClrUsed256biCompression0biPlanes1biSizeImage0biXPelsPerMeter2835biYPelsPerMeter2835height9527size40width6648但用计算dpiWidth=6648*1000/2835dpiHeight=9527*1000/2835的尺寸与打印的实际尺寸不一致,难道必须得通过打印机的DPI来计算吗? 解决方案 解决方

如何利用Win7文件库收藏重要文件

  随着文件数量和种类的增多,再加上工作需要和使用习惯的不确定性,文件变得越来越混乱,文件夹结构越来越复杂,重复文件也越来越多,而真正要用到某个文件时却怎么也找不到了.而现在到了Win7系统时代能不能解决我们这方面的困扰呢?答案当然是肯定的,只要利用Windows7的文件库功能轻松就能应对. 简单地讲,Windows 7文件库就是能将我们需要的文件和文件夹统统集中到一起管理,就如同网页收藏夹一样,只要单击库中的链接,就能快速打开添加到Win7库中的文件夹,不需要关注这个文件存放的具体位置.另外,

win7系统下批量重命名文件的方法

  在win7下我们对于同类文件来说,如果想要以数字编号的形式命名文件的话,是无需借助第三方软件即可完成修改的,不过很多不知道如何操作,故此小编为大家带来了Win7如何同时重命名多个文件的方法,需要的用户赶快学习下吧! win7系统下批量重命名文件的方法 1.在保存文件的时候可以采用系统自动分配名字的方法,即保存的时候系统显示的什么名字,就让它默认为什么名字,这样的名字也不会重名,保存起来相当的快. 2.选中文件夹中所有需要重命名的文件,直接按组合键ctrl+a就行,然后按F2,接下来输入希望设

IE9下载的文件保存在哪里

用IE9下载文件时,它不会像之前版本的IE那样弹出一个对话框.取而代之的是在浏览器下方出现一个提示栏. 上面有"运行"."保存"."取消"按钮和用来关闭提示栏的叉.如果在一段时间内没有进行操作,它会加深背景色使提示变得更醒目. 如果要在下载完成后运行该文件,可以按"运行"按钮.如果只要下载,可以按"保存"按钮.它不会像以前那样弹出询问保存位置的按钮.那么它保存在哪了呢?默认情况下,它会被保存在"个

photoshop文件菜单栏教程

"文件"菜单 (1)"新建"命令 我们来学习何如创建一个新文档.如果在Photoshop CS2中没有打开一个文档,那么它的任何工具和选项都是不能进行操作的,所以首先我 们在"文件"菜单栏中选择"新建"也可以按住Ctrl键的同时双击鼠标左键便会弹出一个新建文件对话框,我们设置宽为500像素,360像素高的文档,这 个大小对大多数显示器的工作区都是合适的,如下图所示: 在"名字"栏中,可以为文档输入一个你想要

delphi编写提取exe文件的ICO图标

会写自己的EXE程序,但没一个好看的EXE图标,是不是很遗憾啊?很多软件都有很好看的图标,我们为什么不提取出来呢?下面教你怎么用delphi编程提取EXE文件的图标,并保存为ICO格式的. 代码如下: procedureTForm1.getIcon; var Count:Integer; FileName:String; i:integer; begin if(FileName<>Edit1.Text)then begin FileName:=Edit1.Text; I:=0; Count:=

delphi编程控制INI文件

从.INI文件中获取字符串 var strResult:pchar; begin GetPrivateProfileString( 'windows', // []中标题的名字 'NullPort', // =号前的名字 'NIL', // 如果没有找到字符串时,返回的默认值 strResult, //存放取得字符 100, //取得字符的允许最大长度 'c:forwin95win.ini' // 调用的文件名 ); edit1.text:=strResult; //显示取得字符串 从.INI文