计算机中的颜色II——VB2005中的Color结构

  在VB2005中,用来表示颜色的是Color结构,注意是结构,也就是不能继承的。下面把Color结构中的重要属性方法等介绍一下。大部分的资料来源于微软的MSDN。

  重要的属性:

  颜色的三分量

    R:红色的分量,取值范围为0—255

    G:绿色的分量,取值范围为0—255

    B:蓝色的分量,取值范围为0—255

颜色的类型:

  IsKnownColor:判断颜色是否是系统预置颜色

  IsNamedColor:判断颜色是否是系统预置颜色

  IsSystemColor:判断颜色是否是系统颜色

预置的颜色:

  属性太多,主要是获取系统的预置颜色。例如:OldLace

重要的方法:

FromArgb:从指定的颜色的三个分量创建一个颜色。

例如:下面这个代码获得红色

tC=Color.FromArgb(255,0,0)

FromKnownColor:获得指定的预置颜色。参数是一个枚举值或者是一个整形变量

  获得颜色的HSB属性。

  GetHue:获得颜色的色相值。取值范围为0—360。

  GetSaturation:获得颜色的饱和值。取值为0—1,值越高,颜色越纯,值为0时,颜色为灰度值。

   GetBrightness:获得颜色的亮度值。取值为0—1,值越高,颜色越亮,值为0时,颜色为黑色。

这个比较重要,许多颜色转换都要利用其中的道理。比较疑惑的是,为什么没有设置这三个属性的方法呢?

下面的文章来源于网络

  色相对比因色相的差别而形成的色彩对比叫色相对比。色相的差别虽是因可见光度的长短差别所形成,但不能完全根据波长的差别来确定色相的差别和确定色相的对比程度。因为红色光与紫色光的波长差虽然最大,但都处于可见光的两极,都接近不可见光的波长。从眼睛感觉的角度分析,它们的色相是接近的,色相环反应了这一规律。因此在度量色相差时,不能只依测光器和可见光谱,而应借助色相环。色相对比的强弱,决定于色相在色相环上的距离。色相距离在十五度以内的对比,一般看作用色相的不同明度与纯度的对比,因为距离十五度的色相属于模糊的较难区分的色相。这样的色相对比称为同类色相对比,是最弱的色相对比。色相距离在十五度以上,四十五度左右的对比,称为邻近色相对比,或近似色相对比,是软弱的色相对比。色相距离在一百三十度左右的对比,一般称为对比色相对比,是色相中对比。色相距离在一百八十度左右的对比,称互补色相对比,是色相强对比。色相距离如果大于一百八十度,从余下的弧度来看,必然小于一百八十度。所以距离恰好在一百八十度的对比,称最强色相对比。

  任何一个色相都可以自为主色,组成同类、近似、对比或互补色相对比。人们欢迎色彩。这就是说有一定纯度的色彩,不同程度的色相对比,既有利于人们识别”不同程度的色相差异,也可以满足人们对色相感的不同要求。实际上同类色相对比是同一色相里的不同明度与纯度色彩的对比。这种色相的同一,不但不是各种色相的对比因素,而是色相调和的因素,也是把对比中的各色统一起来的纽带。因此,这样的色相对比,色相感就显得单纯、柔和、谐调,无论总的色相倾向是否鲜明,调子都很容易统一调和。这种对比方法比较容易为初学者掌握。仅仅改变一下色相,就会使总色调改观。这类调子和稍强的色相对比调子结合在一起时,则感到高雅、文静,相反则感到单调、平淡而无力。

  邻近色相对比的色相感,要比同类色相对比明显些、丰富些.活泼些,可稍稍弥补同类色相对比的不足,可不能保持统一、谐调、单纯、雅致、柔和、耐看等优点。当备种类型的色相对比的色沉放在一起时,同类色相及邻近色相对比,均能保持其明确的色相倾向与统一的色相特征。这种效果则显得更鲜明,更完整,更容易被看见。这时,色调的冷暖特征及其感增效果就显得更有力量。对比,将在冷暖对比一节里再作详述。

  对比色相对比的色相感,要比邻近色相对比鲜明、强烈、饱满。丰富,容易使人兴奋激动和造成视觉以及精神的疲劳。这类瞩子的组织比较复杂,统一的工作也比较难做。它不容易单调,而容易产生杂乱和过分刺激,造成倾向性不强,缺乏鲜明的个性。互补色相对比的色相感,要比对比色相对比更完整、更丰富、更强烈,更富有刺激性对比色相对比也会觉得单调、不能适应视觉的全色相刺激的习惯要求,互补色相对比就能满足这一要求,但它的短处是不安定、不协调、过分刺激,有一种幼稚、原始的和粗俗的感觉。要想把互补色相对比组织得倾向鲜明、统一与调和,配色技术的难度就更高了。


作者: 万仓一黍

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 -------------------------------- 数字类型的格式化 --------------------------------     固定格式参数:     General Number 普通数字,如可以用来去掉千位分隔号     format$("100,1
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和系统设置的区域语言的日期和时间格式相关。意思是尽管你用诸如 Format(Now, "MM/dd/yyyy"),如果系统的设置格式区域语言的日期和时间格式分隔符是"-",那他还会显示为 MM-dd-yyyy     只有拼凑: <%response.write
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接添加本ApplicationEvents.vb 到工程即可 ‘添加后还需要一个From用来显示错误。如果到这步还不会则需要先打好基础啦 ‘======================================================== ‘以下事件
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没有认真去找这个方法呀。 https://blog.csdn.net/chzjxgd/article/details/6176325 金蝶K3 BOS的插件官方是用VB6编写的,如果  能用.Net下的语言工具开发BOS插件是一件很愉快的事情,其中缘由不言而喻,而本文则是个人首创,实现在了用V
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, tmpStr As String, s As String Dim x As Integer, y As Integer, subStr As String If MsgBox("确定要分列处理吗?请确定分列的数据会覆盖它后面的单元格!", _
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single) 2 Dim path As String, hash As String 3 For Each fil
  Imports MySql.Data.MySqlClient Public Class Form1 ‘ GLOBAL DECLARATIONS Dim conString As String = "Server=localhost;Database=net2;Uid=root;Pwd=123456;" Dim con As New MySqlConnection
‘導入命名空間 Imports ADODB Imports Microsoft.Office.Interop   Private Sub A1() Dim Sql As String Dim Cnn As New ADODB.Connection Dim Rs As New ADODB.Recordset Dim S As String   S = "Provider=OraOLEDB.Oracl
Imports System.IO Imports System.Threading Imports System.Diagnostics Public Class Form1 Dim A(254) As String    Function ping(ByVal IP As Integer) As String Dim IPAddress As String IPAddress = "10.0.
VB运行EXE程序,并等待其运行结束 参考:https://blog.csdn.net/useway/article/details/5494084 Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Pr
今天碰到一个问题,登陆的时候,如果不需要验证手机号为空,则不去验证手机号 因为登陆的时候所有的验证信息都存放在一个数组里 Dim CheckUserInfo() As String ={UserBirthday, SecEmail, UserMob, UserSex, RealNameFirst, RealName, CheckCardID, CheckCardType, Contactemail
在VB6.0中,数据访问接口有三种: 1、ActiveX数据对象(ADO) 2、远程数据对象(RDO) 3、数据访问对象(DAO) 1.使用ADO(ActiveX Data Objec,ActiveX数据对象)连接SQL Server 1)使用ADO控件连接 使用ADO控件的ConnectionString属性就可以连接SQL Server,该属性包含一个由分号分隔的argument=value语
注:大家如果没有VB6.0的安装文件,可自行百度一下下载,一般文件大小在200M左右的均为完整版的软件,可以使用。   特别提示:安装此软件的时候最好退出360杀毒软件(包括360安全卫士,电脑管家等,如果电脑上有这些软件的话),因为现如今的360杀毒软件直接会对VB6.0软件误报,这样的话就可能会在安装过程中被误报阻止而导致安装失败,或者是安装后缺乏很多必须的组件(其它的杀毒软件或安全卫士之类的
Private Sub Form_Load() Call conndb End Sub Private Function conndb() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim strCn, sql As String Dim db_host As String Dim db_user As String
  PPSM06S70:  Add  moddate  EDITSPRINTJOB:  MAX(TO_CHAR(ETRN.MODDATE, ‘yyyy/mm/dd/HH24:MI AM‘)) ACTUAL_SHIPDATE   4.Test Scenario (1) :Query SQL Test DN:8016578337 SELECT CTRN.TKCTID TRUCK_ID,        
  沒有出現CrystalReportViewer時,須安裝CRforVS_13_0. 新增1個數據集,新增1個數據表,添加二列,列名要和資料庫名一樣. 修改目標Framework 修改app.config, <startup >改成<startup useLegacyV2RuntimeActivationPolicy ="true">  CrystalReport1.rpt增加數據庫專家 在表單
Imports System.Threading Imports System Public Class Form1 Dim th1, th2 As Thread Public Sub Method1() Dim i As Integer For i = 1 To 100 If Me.Label1.BackColor =
Friend Const PROCESS_ALL_ACCESS = &H1F0FFF = 2035711 Friend Const PROCESS_VM_READ = &H10 Friend Const PROCESS_VM_WRITE = &H20 Friend Const PAGE_READONLY = &H2 Friend Const PAGE_READWRITE = &H4 Friend
以下代码随手写的 并没有大量测试 效率也有待提升 如果需要C#的请自行转换 Function SplitBytes(Data As Byte(), Delimiter As Byte()) As List(Of Byte()) Dim i = 0 Dim List As New List(Of Byte()) Dim bytes As New
Imports System.Data.SqlClient Public Class Form1 REM Public conn1 As SqlConnection = New SqlConnection("server=.; Integrated Security=False;Initial Catalog= mydatabase1; User ID= sa;password")