Image Microsoft Access VBA-确定图像尺寸
我有一个Access数据库,其中有一个文件名字段,以及图像的宽度和高度字段。我不是手动填充宽度和高度,而是尝试从文件名(完整文件路径)中读取高度和宽度,然后插入到记录中 在大多数语言中,维度的读取相当简单,但在Access VBA中找不到太多。我所能找到的只是Excel,它假定图像已经作为对象存在于电子表格中。只需通过谷歌搜索“使用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
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读取图像文件尺寸”时,这篇文章现在是谷歌的头号热门文章。还有,你创造了一个悖论。现在宇宙将要内爆或者其他什么。。。