颜色识别问题

klj123 2008-10-05 07:23:21
如何识别JPG图片上一种颜色和趋近于这种颜色的其他色(如:灰色和趋近灰色),就像Photoshop中的魔术棒,有人说用颜色容差,但我不知如何用,请高手指教,谢谢!
...全文
221 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gzcfsoft 2008-10-12
  • 打赏
  • 举报
回复
我也很想知道。
IamDeane 2008-10-07
  • 打赏
  • 举报
回复
小仙妹发过这个你搜搜看吧
bob008 2008-10-05
  • 打赏
  • 举报
回复
上面都有了。。。闪
SYSSZ 2008-10-05
  • 打赏
  • 举报
回复
这是获取屏幕任意点颜色值的代码,不知LZ有没有?
Private Type POINTAPI
X As Long
Y As Long
End Type
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" (lpPoint As POINTAPI) As Long

Dim z As POINTAPI
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Sub Command1_Click()
End
End Sub

Private Sub Timer1_Timer()
Dim a, b, c, d As Long
GetCursorPos z
ret = GetDC(0)
a = GetPixel(ret, z.X, z.Y)
Label5.Caption = "点的十进制颜色值:" & a
Label1.Caption = "点的位置:" & z.X & "," & z.Y
b = a And &HFF
c = (a And 65280) \ 256
d = (a And &HFF0000) \ 65356
Label2.Caption = "点的RGB(" & b & "," & c & "," & d & ")"
Label3.Caption = "16进制色:" & "Ox" & Hex(a)
Label4.Caption = "网页的颜色:#" & Hex(a)
Picture1.BackColor = RGB(b, c, d)
End Sub
SYSSZ 2008-10-05
  • 打赏
  • 举报
回复
不成熟的看法,魔术棒本质上是鼠标,用API是可以很容易测出鼠标处的颜色值,那么以鼠标处颜色为基准,设定一个范围,就是所谓的容差了,在这个范围内遍历选区内每个像素点,魔术棒要选的颜色也就有了.
happy_sea 2008-10-05
  • 打赏
  • 举报
回复
获取两个点的颜色值(long),用以下方法分别分离出rgb值:
r = Color And &HFF
g = (Color \ &H100) And &HFF
b = (Color \ &H10000) And &HFF
计算两个颜色值的容差(R1-R2)^2+(G1-G2)^2+(B1-B2)^2是否在你定的范围之内

809

社区成员

发帖
与我相关
我的任务
社区描述
VB 多媒体
社区管理员
  • 多媒体
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧