Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image Microsoft Access VBA-确定图像尺寸_Image_Vba_Ms Access - Fatal编程技术网

Image Microsoft Access VBA-确定图像尺寸

Image Microsoft Access VBA-确定图像尺寸,image,vba,ms-access,Image,Vba,Ms Access,我有一个Access数据库,其中有一个文件名字段,以及图像的宽度和高度字段。我不是手动填充宽度和高度,而是尝试从文件名(完整文件路径)中读取高度和宽度,然后插入到记录中 在大多数语言中,维度的读取相当简单,但在Access VBA中找不到太多。我所能找到的只是Excel,它假定图像已经作为对象存在于电子表格中。只需通过谷歌搜索“使用vba读取图像文件尺寸” 乙二醇 比如说 Dim objShell As Object Dim objFolder As Object Dim objFile As

我有一个Access数据库,其中有一个文件名字段,以及图像的宽度和高度字段。我不是手动填充宽度和高度,而是尝试从文件名(完整文件路径)中读取高度和宽度,然后插入到记录中

在大多数语言中,维度的读取相当简单,但在Access VBA中找不到太多。我所能找到的只是Excel,它假定图像已经作为对象存在于电子表格中。

只需通过谷歌搜索“使用vba读取图像文件尺寸”

乙二醇

比如说

Dim objShell As Object
Dim objFolder As Object
Dim objFile As Object

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace("C:\Documents and     Settings\Administrator\Desktop")
Set objFile = objFolder.ParseName("file_name.bmp") 

MsgBox objFile.ExtendedProperty("Dimensions")
您可以从消息框中显示的字符串中提取所需内容,只需通过谷歌搜索“使用vba读取图像文件尺寸”

乙二醇

比如说

Dim objShell As Object
Dim objFolder As Object
Dim objFile As Object

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace("C:\Documents and     Settings\Administrator\Desktop")
Set objFile = objFolder.ParseName("file_name.bmp") 

MsgBox objFile.ExtendedProperty("Dimensions")
您可以从消息框中显示的字符串中提取所需内容。您可以执行以下操作:

Dim objShell As Object
Dim objFolder As Object
Dim objFile As Object

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace("C:\Documents and Settings\Administrator\Desktop")
Set objFile = objFolder.ParseName("file_name.bmp") 

MsgBox objFile.ExtendedProperty("Dimensions")
这个消息框应该会给你一些类似“300x500”(或者长度X宽度是多少)的东西。如果需要单独的尺寸标注,则需要使用

FileLen = CInt(Trim(Mid(objFile.ExtendedProperty, 2, InStr(objFile.ExtendedProperty, "X") - 1)))

您可以这样做:

Dim objShell As Object
Dim objFolder As Object
Dim objFile As Object

Set objShell = CreateObject("Shell.Application")

Set objFolder = objShell.NameSpace("C:\Documents and Settings\Administrator\Desktop")
Set objFile = objFolder.ParseName("file_name.bmp") 

MsgBox objFile.ExtendedProperty("Dimensions")
这个消息框应该会给你一些类似“300x500”(或者长度X宽度是多少)的东西。如果需要单独的尺寸标注,则需要使用

FileLen = CInt(Trim(Mid(objFile.ExtendedProperty, 2, InStr(objFile.ExtendedProperty, "X") - 1)))


您还可以通过类来完成这一点,该类允许您使用如下代码:

targetImage.PixelWidth
targetImage.PixelHeight
  • 创建一个新的类模块并将其命名为
    ImageDimensions
  • 将以下代码粘贴到该类模块中:
  • 类模块代码 示例用法 将此代码放入常规代码模块(不是类模块):


    您还可以通过类来完成这一点,该类允许您使用如下代码:

    targetImage.PixelWidth
    targetImage.PixelHeight
    
  • 创建一个新的类模块并将其命名为
    ImageDimensions
  • 将以下代码粘贴到该类模块中:
  • 类模块代码 示例用法 将此代码放入常规代码模块(不是类模块):


    因此,您正在尝试从文件属性读取宽度和高度。(宽度和高度不在文件名字符串中,是吗?)没错,我编辑了原始问题以使其更清晰。因此,您正在尝试从文件属性中读取宽度和高度。(宽度和高度不在文件名字符串中,是吗?)这是正确的,我编辑了原始问题以使其更清晰。感谢您,使用InStr代替Find,它是InStr的(干草堆,针),我还发现维度字符串类似于“?1024 x?768”,因此我不得不将子字符串索引偏移1。为了将字符串转换为int,CInt(…)完成了这项工作。如果你想更新你的答案,我会把它标记为答案谢谢,不用Find,use InStr,它是InStr的(haystack,needle),我还发现维度字符串类似于?1024 x?768“,所以我不得不将子字符串索引偏移1。为了将字符串转换为int,CInt(…)完成了这项工作。如果你想更新你的答案,我会把它标记为答案。一个具有讽刺意味的副作用是,你可以用谷歌的“使用vba读取图像文件尺寸”搜索一下“使用vba读取图像文件尺寸”,这篇文章现在是谷歌的头号热门文章。还有,你创造了一个悖论。现在宇宙将要内爆或是其他什么…一个具有讽刺意味的副作用是,当谷歌“使用vba读取图像文件尺寸”时,这篇文章现在是谷歌的头号热门文章。还有,你创造了一个悖论。现在宇宙将要内爆或者其他什么。。。