CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

关于颜色的转换?

楼主chime(chime)2001-09-24 17:30:33 在 C++ Builder / 基础类 提问

用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

相关问题

  • 颜色转换
  • 颜色转换
  • 24bit RGB颜色到16bit的转换?
  • 急.. vb.net 颜色转换问题
  • 如何将rgb颜色值转换为html的颜色值
  • 怎样将web颜色转换成vb颜色??????
  • 关于vb的颜色转换和控件大小转换问题
  • DOS下16位颜色图如何转换成24位BMP图
  • 如何将vb系统颜色常熟转换为long?
  • 谁给我一个颜色转换的算法(RGB to 256color)

关键词

  • 转换
  • aspcolor
  • colordialog1
  • inttohex
  • 颜色值
  • xff
  • ff
  • 颜色
  • color
  • shape1

得分解答快速导航

  • 帖主:chime
  • ljhsoft
  • Raptor
  • whyjld
  • Hoarfrost
  • whitelion

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo