klj123 发表于 2008-6-22 18:58

如何用VB实现颜色替换

在PictureBOX中,已用画笔画有一些蓝色和红色的圆,圆不填充,要实现的功能:

在PictureBOX上用右键单击蓝色像素点,所有蓝色的圆变成PictureBOX背景色(白色),而红色的圆则不变.
或实现象Photoshop中的替换颜色功能,望提供完整代码,先谢了!


有人提供过思路[color=Red]"你如果要用任一种颜色替换图片框中某种任意颜色的所有点,请用API   来试试,请看看GetPixel()和SetPixel(),如果你能记住该种颜色所绘轨迹就更好了![/color]"
但不知道如何写,请高手帮忙!

[[it] 本帖最后由 klj123 于 2008-6-22 19:04 编辑 [/it]]

multiple1902 发表于 2008-6-22 19:22

Function Point(X As Single, Y As Single) As Long
    Member of VB.PictureBox
    Returns, as an integer of type Long, the RGB color of the specified point on a Form or PictureBox object.
用Point方法可以得到某一点的颜色

Sub PSet(Step As Integer, X As Single, Y As Single, Color As Long)
    Member of VB.PictureBox
    Sets a point on an object to a specified color.
似乎用PSet方法可以设置一点的颜色

至于怎么保存下来,我不清楚。

klj123 发表于 2008-6-22 19:29

版主啊,总的来说,就是如何将PictureBOX的蓝色变成白色,但我通过改变Picture1.BackColor = RGB(0, 0, 255),达到删除蓝色线条,但这样红线条也被删除了,哎....

multiple1902 发表于 2008-6-22 19:30

你现在要针对每个点操作,你改背景色干什么?

klj123 发表于 2008-6-22 20:49

总之将已画的蓝色圆去除,而红的留下就达到目的了,请版主尽力帮忙!!!!

页: [1]

编程论坛