关于颜色的转换?
用BDB的ColorDialog1->Color取出来的颜色值是数字,如:黄色=8454143
而asp中用的是#FFCC00,请问如何把BCB的颜色值转换成ASP的颜色值。
问题点数:60、回复次数:15Top
1 楼ljhsoft(刘建华)回复于 2001-09-24 17:36:42 得分 1
写一个简单的转换程序不就行了。Top
2 楼whyjld(白痴)回复于 2001-09-24 17:38:47 得分 0
color为颜色值
"#" + IntToHex(color, 6)Top
3 楼chime(chime)回复于 2001-09-24 17:48:44 得分 0
whyjld(白痴):转换后的颜色值不对,如红色换成#0000FF,但实际#0000FF是蓝色。Top
4 楼whyjld(白痴)回复于 2001-09-24 18:02:39 得分 0
可能是对颜色的定义不同,TColor是BGR形式的,要转换成RGB
试试
"#" + IntToHex( (color & 0xff00) + ((color & 0xff) << 4) + ((color & 0xff0000) >> 4) )Top
5 楼Raptor(猛禽)回复于 2001-09-24 18:19:14 得分 1
对,如上Top
6 楼chime(chime)回复于 2001-09-25 11:12:50 得分 0
whyjld(白痴):
还是不对:
if (ColorDialog1->Execute())
{
Shape1->Brush->Color= ColorDialog1->Color;
Edit1->Text="#"+IntToHex(((Shape1->Brush->Color)& 0xff00)+(((Shape1->Brush->Color)&0xff) << 4) + (((Shape1->Brush->Color)& 0xff0000) >> 4),6);
}
asp:bgcolor="#090EF0"
两种颜色还是对相同?
Top
7 楼whyjld(白痴)回复于 2001-09-25 11:49:12 得分 0
告诉我在ASP中单纯的红,绿,蓝分别是什么Top
8 楼chime(chime)回复于 2001-09-25 15:10:45 得分 0
红: #FF0000
绿: #00FF00
蓝: #0000FF
谢谢!!!Top
9 楼Hoarfrost(霜)回复于 2001-09-25 15:45:36 得分 0
if(ColorDialog1->Execute())
{
unsigned char red,green,blue;
unsigned int aspColor = ColorDialog1->Color;
blue = (aspColor&0x00ff0000)>>16;
green = (aspColor&0x0000ff00)>>8;
red = aspColor&0x000000ff;
aspColor = 0x00;
aspColor += red;
aspColor = aspColor<<8 + green;
aspColor = aspColor<<8 + blue;
}
//aspColor就是你要的值了!Top
10 楼whyjld(白痴)回复于 2001-09-25 15:51:45 得分 0
对不起,写错了,应该是
"#" + IntToHex( (color & 0xff00) + ((color & 0xff) << 8) + ((color & 0xff0000) >> 8) ) Top
11 楼chime(chime)回复于 2001-09-25 16:09:24 得分 0
whyjld(白痴):
还是不对,Edit1->Text="#" + IntToHex( (color & 0xff00) + ((color & 0xff) << 8) + ((color & 0xff0000) >> 8),6 ) ;
红、绿、蓝取得的值都是#00FF00Top
12 楼whyjld(白痴)回复于 2001-09-25 16:25:36 得分 40
实在对不起应该是
"#" + IntToHex( (color & 0xff00) + ((color & 0xff) << 16) + ((color & 0xff0000) >> 16),6 ) Top
13 楼Hoarfrost(霜)回复于 2001-09-25 16:31:57 得分 17
我忘了转成字符串了:更正为:
if(ColorDialog1->Execute())
{
unsigned char red,green,blue;
unsigned int aspColor = ColorDialog1->Color;
blue = (aspColor&0x00ff0000)>>16;
green = (aspColor&0x0000ff00)>>8;
red = aspColor&0x000000ff;
aspColor = 0x00;
aspColor += red;
aspColor = aspColor<<8 + green;
aspColor = aspColor<<8 + blue;
AnsiString str_Color = "#"+ IntToHex(apsColor,6);
}
//str_Color就是你要的值了! Top
14 楼whitelion(www.ccproj.com)回复于 2001-09-25 17:21:27 得分 1
ccTop
15 楼chime(chime)回复于 2001-09-26 10:22:38 得分 0
whyjld(白痴):能否说一下原理,谢谢。Top




