LoadPicture错误无效图片

问题描述 投票:2回答:3

我正在尝试从文件夹中拍摄图像,然后检查其宽度。为此,我使用了以下和平代码:

         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文件有影响?

vba powerpoint-vba loadimage
3个回答
2
投票

来自msdn.microsoft.com

Visual Basic可以识别的图形格式包括位图(.bmp)文件,图标(.ico)文件,光标(.cur)文件,游程编码(.rle)文件,图元文件(.wmf)文件,增强型图元文件(.emf),GIF(.gif)文件和JPEG(.jpg)文件。

。png不支持。


1
投票

我正在搜索这个确切的问题,并在另一个站点上找到了解决方案,所以我想在这里分享。

我没有提供此代码,它来自Experts Exchange:http://www.experts-exchange.com/Software/Office_Productivity/Office_Suites/MS_Office/Excel/Q_26980514.html

如果导入.bas文件,则可以使用LoadPictureGDI()代替LoadPicture(),后者可以在将图片加载到用户表单或工作表中之前对其进行转换。


0
投票

LoadPicture命令在使用更高版本的Office时似乎不喜欢长度大于35个字符的文件名。我可以在Windows 7 Office 2010中将图片加载到用户窗体中,它似乎可以处理任何长度的文件名,但是一旦移至Windows 10 / Office 2013以后,如果长度超过35个字符,Err.Description就会简单地说:路径/访问错误”。

将文件名限制为35个字符,应该没问题。

© www.soinside.com 2019 - 2024. All rights reserved.