vb:Cg色彩精灵 第一部分:使用到的知识
发布时间:2020-12-17 07:35:40 所属栏目:百科 来源:网络整理
导读:翻出来以前写的一篇文章:Cg色彩精灵,这是用vb6来写的 搞图像创作都有那么个难题,就是在上色时候老是配不好颜色,不是显得红了就是偏蓝,不得不参考别人的配色或者翻看颜色参考书,为什么不尝试自己做一个保存颜色的程序,把觉得好的颜色存储起来,方便在
翻出来以前写的一篇文章:Cg色彩精灵,这是用vb6来写的
搞图像创作都有那么个难题,就是在上色时候老是配不好颜色,不是显得红了就是偏蓝,不得不参考别人的配色或者翻看颜色参考书,为什么不尝试自己做一个保存颜色的程序,把觉得好的颜色存储起来,方便在配色时参看使用。
程序实现目标:1、程序可以配色;2、实现颜色的存储;3、屏幕取色。
第一部分:使用到的知识
一、Vb与颜色有关的部分基本知识 Vb中使用颜色的三种方法,1、使用QbColor(Color)函数,其中参数Color是0-15的整型,因此这个函数只能选择16种颜色;2、使用RGB(red,green,blue)函数,每个参数的值是0-255的整型,构成256×256×256=1677万种颜色,例如使用该语句定义窗体的背景色为白色:Form.BackColor=RGB(255,255,255);3、使用Long型数值,比如设置窗体的背景色为白色:Form.BackColor= 16777215,或者:Form.BackColor=”&HFFFFFF”。 颜色是由红色(R)、绿色(G)、蓝色(B)按照一定比例组成的,每个颜色分量的大小是0-255,例如,白色的构成是:R:255;G:255;B:255。对于颜色可以通过调整RGB分量来获得,也可以将颜色还原为三个分量的值,具体方法如下: 红色分量:= 颜色值 And &HFF 绿色分量:= (颜色值 And CLng("&HFF00")) / 256 蓝色分量:= (颜色值 And &HFF0000) / 65536 在Vb中取色可以使用Object.Point(X,Y)函数,X、Y表示该Object上的坐标点位置,比如在Form上坐标点(1890,3660)的位置取色:Form.Point(1890,3660)。但是这个函数只能在本程序中使用,如果我们要在屏幕上取色的话,就不得不求助于Windows Api 函数中的GetPixel 函数(参看第二部分)。 二、Vb和数据库方面的知识 程序要考虑存储颜色值,实际需要的数据包含:颜色的名称、颜色所属类型、颜色的值。程序中使用的数据并不复杂,因此使用Access的数据库。 启动Access,新建数据库Color.mdb ,建立两个数据表: 表1:ColorNameTable: Index自动编号长整型颜色自动编号 ColorName文本50颜色名称 ColorType文本10颜色类型 ColorValue文本10颜色数值 表2:ColorTypeTable ColorType文本10颜色类型
此外,为了防止别人修改数据库,应该对数据库进行加密,选择“工具/安全/设置数据库密码”,然后根据提示输入密码。
Vb提供了多种数据库访问技术,Ado(ActiveX数据访问对象)的功能非常强大,可以访问多种数据源,在程序中建议采用Ado来完成数据操作。首先需要在工程中引用“Microsoft ActiveX Data Objects 2.1 Library” ,然后是进行一些比较固定的操作: Public Conn As ADODB.Connection'建立ADODB.Connection对象 Public Rs As ADODB.Recordset'建立ADODB.Recordset对象 Public StrSql As String'操作Recordset 的Sql语句 Set Conn = New Connection Set Rs = New Recordset Conn.CursorLocation = adUseClient'使用由本地游标库提供的客户端游标 Conn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=color.mdb; DefaultDir=" & App.Path & ";Uid=;Pwd=;" '打开到数据源的连接,如果有用户和密码的话,需要在Uid和Pwd后面加入 Rs.ActiveConnection = Conn' 设置Rs到Conn对象的连接 Rs.CursorType = adOpenDynamic'设置游标类型为动态游标 '在程序中使用Rs.Open StrSql进行数据操作
以上部分需要大家记住,可以说是Vb操作(*.mdb)数据库的必备过程。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |