5
A
回答
6
尝试在网站上公布这里的解决方案: http://sim0n.wordpress.com/2009/03/27/vba-q-how-to-get-pixel-colour/
我不得不改变的ByRef到BYVAL但,除了它工作得很好。使用“插入”>“图片”插入图片,并为点击事件分配一个宏。我刚刚将单元格A1的颜色设置为您点击的颜色,但我相信您明白了。
#If VBA7 Then
Private Declare PtrSafe Function GetPixel Lib "gdi32" (ByVal hdc As LongPtr, ByVal x As Long, ByVal y As Long) As Long
Private Declare PtrSafe Function GetCursorPos Lib "user32" (ByRef lpPoint As POINT) As LongPtr
Private Declare PtrSafe Function GetWindowDC Lib "user32" (ByVal hwnd As LongPtr) As LongPtr
#Else
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (ByRef lpPoint As POINT) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
#End If
Private Type POINT
x As Long
y As Long
End Type
Sub Picture1_Click()
Dim pLocation As POINT
Dim lColour As Long
Dim lDC As Variant
lDC = GetWindowDC(0)
Call GetCursorPos(pLocation)
lColour = GetPixel(lDC, pLocation.x, pLocation.y)
Range("a1").Interior.Color = lColour
End Sub
要使用它,将图片放置在工作表中,右键单击图像并将其分配给它。
+0
伟大的答案,测试它,它完美的作品。 +1 – hammythepig 2013-06-20 20:09:49
+1
此处还有其他信息:您还可以使用只需粘贴在工作表中的图像(“插入>图片”过程不是强制性的)。再次感谢+1并感谢您@KM Hs – Arthur 2014-04-24 15:02:31
相关问题
- 1. 阅读单色位图像素颜色
- 2. 从图像中获取像素颜色
- 3. 读取每个像素的PVRTC图像颜色信息
- 4. 使用画布和JavaScript来读取图像的像素颜色
- 5. PNG ++读取像素颜色值
- 6. 图像读取的RGB颜色?
- 7. Unity:读取图像像素颜色并基于该图像实例化对象
- 8. PyPNG读取48位,更改像素颜色,写入像素
- 9. 如何获取图像中像素的颜色(加载灰色)?
- 10. WPF图像,改变像素的颜色
- 11. FreeImage:获取像素颜色
- 12. GDAL获取像素颜色
- 13. Java - 获取像素颜色
- 14. 从图片中获取像素颜色?
- 15. C#位图从像素读取不正确的颜色
- 16. C++读取图像像素
- 17. C#图像扫描像素颜色
- 18. 透明像素颜色 - 去朗图像
- 19. 阅读android中的像素颜色
- 20. Swift - 读取.jpg图像的像素颜色返回不正确的值
- 21. 从iPhone上的PNG图像读取像素颜色值的简单方法?
- 22. 在java和android中读取位图像素颜色?
- 23. 地理参考图像的读取像素颜色,并得到经纬度
- 24. 获取pygame中图像的单个像素的颜色
- 25. iPhone:如何获取图像的每个像素的颜色?
- 26. 使用Android中的按钮获取图像的像素颜色?
- 27. 如何从图像中获取像素的颜色?
- 28. iOS:从图像的每个像素获取顶部颜色
- 29. 获取图像的平均外部像素颜色
- 30. 统一2D:获取原始图像的颜色像素
如果代码使用API,那么它很可能实现它到VBA中,设置API函数的一些引用... – 2013-05-13 19:08:37
你问什么文件类型?任何特别的?也许是一个文件类型的列表?不同的文件格式将存储不同的颜色信息,因此读取不同的类型将需要知道我们将需要阅读什么。 – jhoe 2013-06-03 22:13:18
下面的答案很好,但如果你真的想扫描每个像素(而不是点击它),那么这个https://stackoverflow.com/questions/45998565/scan-image-pixel-by-pixel-in-vba/ 46004570#46004570很好地完成了这项工作,所有在VBA(没有图形库等) – perfo 2017-09-06 08:27:47