delphi 获取颜色值的RGB

前言:http://www.cnblogs.com/studypanp/p/5002953.html 获取的颜色值

前面获取到一个像素点的颜色值后(十六进制),比如说(黄色):FFD1C04C(共八位),我自认为前面两位代表透明度,其它顺序为R-G-B, 没想到顺序是G-B-R

下面为从十六进制解析RGB的函数:(这里是把FF当成了R)

function TForm2.HexColorToRGB(s: string): string;    // 传进来的是颜色值
var
  i: Integer;
   R,G,B: Byte;
begin
  i := s.ToInteger;
  R := i and $FF;
  G := (i shr 8) and $FF;
  B := (i shr 16) and $FF;
// Result := Format(‘%.2x,%.2x,%.2x‘,[R,G,B]);            // 返回十六进制的RGB
  Result := Format(‘%.2d,%.2d,%.2d‘,[R,G,B]);    	  // 返回RGB: 76,192,209
end;
 

我在画图上的颜色编辑器上输入R:76, G:192,B:209,画布上面显示的是蓝色,我又郁闷...

后来我把这三个数打错顺序输入,结果发现192,209,76才是原来的颜色,位数不是按RGB的顺序,而是按BRG的顺序,郁闷死我了

至少我在XE中结果是这样的。

function TForm2.HexColorToRGB(s: string): string;    // 传进来的是颜色值
var
	i: Integer;
  R,G,B: Byte;
begin
	i := s.ToInteger;
	B := i and $FF;
	R := (i shr 8) and $FF;
	G := (i shr 16) and $FF;
//	Result := Format(‘%.2x,%.2x,%.2x‘,[R,G,B]);    // 返回十六进制的RGB
	Result := Format(‘%.2d,%.2d,%.2d‘,[R,G,B]);    	// 返回RGB 192,209,76
end;

所以需要把原来函数的顺序变一下。

时间: 2024-08-08 05:38:55

delphi 获取颜色值的RGB的相关文章

我给女朋友讲编程html系列(9)—颜色值及如何获取颜色值和下载软件小技巧

一.颜色名 大多数的浏览器都支持颜色名集合. 仅仅有 16 种颜色名被 W3C 的 HTML4.0 标准所支持.它们是:aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow. 其实这里面只需要记住下面几个常用的就行了: 序号 颜色名 意思 1 red 红色 2 green 绿色 3 blue 蓝色 红绿蓝是颜色3原色,按不同比例混合可

delphi 获取文件的最新修改时间 http://www.delphitop.com/html/wenjian/64.html

delphi 获取文件的最新修改时间 作者:admin 来源:未知 日期:2010/1/28 13:15:22 人气:1054 标签: QQ空间新浪微博腾讯微博腾讯朋友QQ收藏百度空间百度贴吧更多0 delphi 获取文件的最新修改时间 varDateTime: TDateTime;beginFileAge('C:\Windows\Notepad.exe', DateTime);ShowMessage(DateTimeToStr(DateTime));end;

JavaScript 16进制颜色值转RGB

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

Delphi 获取MAC 地址

function GetMacAddress(index:integer):string;var   ncb : TNCB;                {NetBios控制块}   AdapterS : TAdapterStatus; {网卡状态结构}   LanaNum : TLanaeNum;       {Netbios Lana}   i : integer;   rc : Char;                 {NetBios的返回代码}   str : String;beg

delphi 获取驱动盘的卷标 号

{获取C盘的卷标 格式化硬盘卷标改变} //GetHardDiskSerial('c:\') function GetHardDiskSerial(Drive: string): string; var VolumeSerialNumber: DWORD;    MaximumComponentLength: DWORD;    FileSystemFlags: DWORD;  begin    if Drive[Length(Drive)]=':' then Drive := Drive + 

delphi 获取 TreeView选中的文件路径

//获取 TreeView选中的文件路径 unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ComCtrls; type  TForm1 = class(TForm)    TreeView1: TTreeView;    ListView1: TListView;    RichEdit1: TRic

Delphi获取当前系统时间(使用API函数GetSystemTime)

在开发应用程序时往往需要获取当前系统时间.尽管Y2K似乎已经平安过去,但在我们新开发的应用程序中还是要谨慎处理“时间”问题. 在<融会贯通--Delphi4.0实战技巧>(以下简称“该书”)第89页专门介绍了两种获取当前系统时间的方法,但这两种方法都存在不足或错误,以下就此进行讨论. 该书第一种方法是利用Time()函数获得当前系统时间,返回结果是TDateTime结构类型的变量.例如: procedure TForm1.Button2Click(Sender: TObject); var D

Delphi获取与设置系统时间格式,即GetLocaleInfo和SetLocaleInfo

在Delphi中,特别是在写管理系统软件时,经常要用到 FormatDateTime 以将 TDateTime 格式的日期时间转换成字符串形式的值显示或保存起来,或者用 StrToDateTime将字符串形式的日期时间转换成 TDateTime 然后再做其他操作. 在进行时间或日期的转换时,会使用系统当前设定的时间日期格式.而如果时间日期格式与字符串中的表示方式不相符,会使转换过程失败.例如当前短日期格式设定为'yyyy/MM/dd',而要转为 '2006-10-20'这样的字符串为日期,就会报

delphi 获取可执行文件的当前路径

在Delphi SysUtils 单元中有 ExtractFileDir 与 ExtractFilePath两个类似的函数, 两个函数有以下的区别: ExtractFilePath 传回值的最後一个字元是反斜杠“/”. ShowMessage(ExtractFileDir(Application.Exename)); // 返回值为 c:/temp ShowMessage(ExtractFilePath(Application.Exename)); // 返回值为 c:/temp/ 相同点: 如