最近在写一个程序,涉及到图片比较问题,希望大家能帮忙解决一下。
有两张图片a,b b大部分和a一样,只有一小点不一样,想让程序把b中和a不一样的部分用其他颜色表示出来,在picture中显示
网上说是要比较两张图片的RGB ,可是我实在不知道是哪个函数,有高手还希望指教一下,给个例子也行,先谢过了·
有两张图片a,b b大部分和a一样,只有一小点不一样,想让程序把b中和a不一样的部分用其他颜色表示出来,在picture中显示
网上说是要比较两张图片的RGB ,可是我实在不知道是哪个函数,有高手还希望指教一下,给个例子也行,先谢过了·
解决方案 »
- patrickkong 被封了? 貌似好久没见了....
- 用StrConv函数把unicode码转成汉字,显示问号
- 能否改变msgbox生成的提示窗体文字颜色?
- RichTextBox我把属性enable=false了,我还想让滚动条可以动怎么办??
- pdg檔案要用什麼軟體才能開啊?
- 求助一函數:可求出一數組中某值的下標值
- 有需要关于rundll32.exe内容的请留言!
- 怎样设计datareport里detail session里的行数,像票据的设计,预先设计行数,不论有多少条记录,每次最多能放五条记录.
- 请问将数据库的查询结果记录集,直接装进 listview 控件里?谢谢!
- 如何用vb编写的程序锁住光驱???????
- 急急 !寻找HtmlPrinter.ocx
- 救命,同样的方法,其他二个能用,一个不能用
Private Sub find_difference()
Dim xlen As Long
Dim hdc As Long
Dim x As Long, y As Long
Dim lcolor As Long, Rcolor As Long, Scolor As Long
xlen = X2 - X1
hdc = GetDC(0)
Scolor = SelectColor()
For y = Y1 To (Y1 + L)
For x = X1 To (X1 + K)
lcolor = GetPixel(hdc, x, y)
Rcolor = GetPixel(hdc, x + xlen, y)
If IsSame(lcolor, Rcolor) = True Then
t = SetPixel(Picture3.hdc, (x - X1) / 3, (y - Y1) / 3, Rcolor)
Else
t = SetPixel(Picture3.hdc, (x - X1) / 3, (y - Y1) / 3, Scolor)
End If
Next x
Next y
End Sub实现了扫描屏幕上的两幅图片,做比较(issame)后,把差异用其他颜色(selectcolor)输出
程序效果还可以,就是效率问题有待解决,希望有高手指点
Private Sub Command1_Click()
Picture1.PaintPicture Picture2.Image, 0, 0, , , , , , , vbSrcInvert
End SubPrivate Sub Form_Load()
Picture1.AutoRedraw = True
Picture1.ScaleMode = vbPixels
Picture1.Line (0, 0)-(100, 100)
Picture2.AutoRedraw = True
Picture2.ScaleMode = vbPixels
Picture2.Line (0, 0)-(100, 100)
Picture2.Circle (50, 50), 10
End Sub