VBA Excel 2010 CreateObject ExtendedProperty获取图像宽度属性

cmssoen2  于 2023-06-25  发布在  其他
关注(0)|答案(3)|浏览(155)

我使用类似的函数来获得一些属性,如Filenamebit depthdimensionssize等,通过使用一些vba代码。该函数的最后一行类似于以下内容:

PicSize = CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("size")

现在,我想得到图像文件的高度和宽度。我已经把heightwidth放在ExtendedProperty属性值中,但它没有给出该文件的高度和宽度。
请注意,在该图像文件的属性对话框中,在摘要选项卡中,它显示Bit depth,但将其放置不起作用。然后我把bitdepth和它成功地工作。名称不区分大小写。
好了!现在我只想得到所选图像文件的高度和宽度。我该怎么做?我的意思是在ExtendedProperty()中放入什么来获得高度和宽度。
如蒙早日答复并提供解决方案,将不胜感激。

3b6akqbq

3b6akqbq1#

无法解释为什么HeightWidth不起作用,但Dimensions似乎起作用,返回类似?493 x 376?的字符串

z4bn682m

z4bn682m2#

我建议采用变通方法
在代码中替换size

PicSize=CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("size")

Dimensions,您将得到类似于?493 x 376?的内容
现在宣布
字符串t = "?493 x 376?"
'搜索“x”的索引

search_x = InStr(t, "x")

'我们将得到宽度和高度

width = Mid(t, 2, search_x - 2)

height = Mid(t, search_x + 2, Len(t) - 8)

不知道为什么,我发现从“2”开始的宽度和“-8”的高度会给予一个数字

6jygbczu

6jygbczu3#

您可以通过修改代码分别检索图像的宽度和高度,如下所示:

Width = CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("{6444048F-4C8B-11D1-8B70-080036B11A03} 3")

Height = CreateObject("Shell.Application").Namespace(vPth2).Parsename(sPic2).ExtendedProperty("{6444048F-4C8B-11D1-8B70-080036B11A03} 4")

有关其他扩展属性,请参见Common Open Properties

相关问题