我正在尝试从文件夹中拍摄图像,然后检查其宽度。为此,我使用了以下和平代码:
Dim pic As IPictureDisp
Dim var As Variant
var = "C:\Myfolder\Animage" & animationNum + 1 & ".png"
pic = LoadPicture(var)
它给我“无效图片”错误。我也尝试只使用以下行:
width = LoadPicture("C:\Myfolder\Animage" & animationNum + 1 & ".png").width
但是它也给了我同样的错误。如何加载图片?
编辑
我尝试使用jpg图像,并且可以正常工作...这个功能是否对png文件有影响?
Visual Basic可以识别的图形格式包括位图(.bmp)文件,图标(.ico)文件,光标(.cur)文件,游程编码(.rle)文件,图元文件(.wmf)文件,增强型图元文件(.emf),GIF(.gif)文件和JPEG(.jpg)文件。
。png不支持。
我正在搜索这个确切的问题,并在另一个站点上找到了解决方案,所以我想在这里分享。
我没有提供此代码,它来自Experts Exchange:http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_26980514.html
如果导入.bas
文件,则可以使用LoadPictureGDI()
代替LoadPicture()
,后者可以在将图片加载到用户表单或工作表中之前对其进行转换。
LoadPicture命令在使用更高版本的Office时似乎不喜欢长度大于35个字符的文件名。我可以在Windows 7 Office 2010中将图片加载到用户窗体中,它似乎可以处理任何长度的文件名,但是一旦移至Windows 10 / Office 2013以后,如果长度超过35个字符,Err.Description就会简单地说:路径/访问错误”。
将文件名限制为35个字符,应该没问题。