2016-11-15 292 views
1

我想将图片加载到excel中,并将其像素的RGB值提取到二维数组中。VBA getPixel总是返回-1

但是,当我尝试使用GetPixel函数时,它始终返回-1。我确定它已经将图片加载到了一个用户窗体上,但仍然返回-1。

这里是我的代码:

Private Declare PtrSafe Function GetPixel Lib "gdi32" (ByVal hDC As LongPtr, ByVal x As Long, ByVal Y As Long) As Long 


Dim color As Long 
UserForm1.Image1.Picture = LoadPicture("D:\Dropbox\Dropbox\1.bmp") 
Debug.Print (UserForm1.Image1.Picture) 
Debug.Print (GetPixel(UserForm1.Image1.Picture.Handle, 100, 100)) 

回答

1

getPixel功能不兼容loadPicture

我的解决方案是将图片加载到可见的用户窗体中,然后提取用户窗体的像素。