
两种方法可以解决:
一、你的图被显示到窗体上或者控件里,获得窗口或控件的DC,然后用GetPixel函数得到一个像素的值,这个像素应该是你确认它在背景上。
例如:
//获取窗体DC
CDC pDC = GetDC();
//获取颜色值
COLORREF cr = pDC->GetPixel(CPoint(1,1));
//提取RGB分量
BYTE btR = GetRValue(cr);//R值
BYTE btG = GetGValue(cr);//G值
BYTE btB = GetBValue(cr);//B值
//如果btR==255,而btG==0、btB==0,则说明是红色
//如果btR==255,而btG==255、btB==0,则说明是**
二、如果你打开图时,已经获得了它的DIB值,那么就可以直接读图中的像素值了,这样同样可以获得到某一个点的颜色值了。
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long '声明
Dim Color as Long '对应坐标的点的颜色
Color = GetPixel(Picture1hDC, x, y) 'x和y是对应的坐标
var A:TColor;
begin
a:=CanvasPixels[100,100];
ShowMessage(ColorToString(a)); //显示颜色名称
//ShowMessage(IntToHex(ColorToRGB(a),8)); //显示颜色的十六进制值
end;
Private Sub Command1_Click()
Picture1BackColor = Shape1FillColor
End Sub
不知道是不是你想要的效果
1、首先打开labview的前面板,一般可以看到前面板有很多控件,默认颜色是灰白色的框。
2、其次通过alt+V+t快捷键,可以快速打开工具控件选板红框。
3、最后进入选板后,点击前面的夜色框框,然后选成红色。
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
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
Private Type POINTAPI
X As Long
Y As Long
End Type
Sub Form_Load()
Timer1Enabled = True
Timer1Interval = 1
End Sub
Private Sub Timer1_Timer()
AutoRedraw = True
Dim p As POINTAPI
dc = GetDC(0)
GetCursorPos p
Cls
Print pX, pY
Print Hex(GePixel(dc, pX, pY))
End Sub
在窗体上放一个 timer控件,运行即可,vb60环境通过调试,
以上就是关于vc如何识别颜色谢谢啦.元旦快乐全部的内容,包括:vc如何识别颜色谢谢啦.元旦快乐、VB怎么输出控件中图片的颜色、delphi里面,如何获取指点窗口内坐标100,100的颜色等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)