VBA getPixel 总是 returns -1

VBA getPixel always returns -1

我正在尝试将图片加载到 excel 并将其像素的 RGB 值提取到二维数组中。

但是,当我尝试使用 GetPixel 函数时,它总是 returns -1。我确保它已将图片加载到用户窗体上,但仍然是 returns -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.bmp")
Debug.Print (UserForm1.Image1.Picture)
Debug.Print (GetPixel(UserForm1.Image1.Picture.Handle, 100, 100))

getPixel 函数与 loadPicture 不兼容。

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