的话 说,世 界上任何 一种颜 色的“颜 色空间”都可定 义成 一个固 定的数 字或 变量。
RGB(红 、绿、蓝)只是众 多颜色 空间的 一种 。
采用 这种 编码方 法,每 种颜 色都可 用三 个变量 来表示-红色绿色 以及蓝 色的强 度。
记录 及显示 彩色图 像时 ,R GB 是 最常见 的一 种方 案。
但 是,它缺乏 与早期 黑白显 示系 统的良 好兼 容性。
因此 ,件多 电子 电器厂 商普 遍 采用的 做法是,将 RGB 转 换成 YUV 颜色空 同,以维持兼 容,再根据需 要换回 RGB 格式,以便在电脑 显示器 上显示 彩色 图形。
所 (红 、 由 于网页W EB是基于计 算机浏 览器 开发的 媒体 , 以颜色 以光学 颜 色 RGB绿、蓝 )为 主。
网 页颜色 是以 16 进制 代码表 示,一般 格式为 DEFABC (字母 范围从 A-F数 字从 0-9 )如黑色,在网 页代码 中便是:000000在 css 编写 中可简 写为000。
当颜 色代码 为AABB11 时 ,可以 简写 为AB1 表示, 如135 与 113355 表示同样 的颜色 。
各 种 RGB 格 式 RGB1、RGB4、RGB8 都是调 色板类 型的 RGB 格式,在描述 这些 媒 体类型 的格式细节 时,通 常会在 BITMAPINFOHEADER 数据 结构 后面跟 着一个 调色 板(定 义一系列颜 色)。
它们的 图像数 据并 不是真 正的颜 色值 ,而 是当 前像素 颜色 值 在调色 板中的索引。
以 RGB1(2 色 位图)为例,比如它 的调 色板中 定义的 两种 颜色值 依次为 0x000000(黑色 )和 0xFFFFFF(白色 ),那么图像 数据 001101010111…(每个 像素用 1 位表 示)表 示对应 各像 素的颜 色为 :黑黑 白白黑 白黑 白黑白 白白…。
¨ RGB565 使用 16 位 表示一 个像 素,这 16 位中 的 5 位 用于 R, 6 位 用于 G,5位用于 B。
程序中 通常使 用一 个字(W ORD,一个字 等于两 个字节 )来 操作 一个像 素。
当读出 一个像 素后, 这个 字的各 个位 意义如 下: 高 字节 低字 节 R R R R R G G G G G G B B B B B 可 以组合 使用屏 蔽字 和移位 操作 来得到 RGB 各分 量的值 : define RGB565_MASK_RED 0xF800 define RGB565_MASK_GREEN 0x07E0 define RGB565_MASK_BLUE 0x001F R wPixel RGB565_MASK_RED 11 // 取值 范围 0-31 G wPixel RGB565_MASK_GREEN 5 // 取 值范围 0-63 B wPixel RGB565_MASK_BLUE // 取值范 围 0-31 define RGBrgb unsigned int r/0x08 5 // 取 值范围 0-31 B wPixel RGB555_MASK_BLUE // 取值范 围 0-31 ¨ RGB24 使用 24 位来 表示一 个像 素,RGB 分量 都用 8 位 表示, 取值 范围为 0-255。
注意 在内存 中 RGB 各 分量的 排列 顺序为 :BGR BGR BGR…。
通 常可以 使用RGBTRIPLE 数据结 构来操 作一 个像素 ,它的 定义 为: typedef struct tagRGBTRIPLE BYTE rgbtBlue // 蓝 色分量 BYTE rgbtGreen // 绿色 分量 BYTE rgbtRed // 红 色分量 RGBTRIPLE ¨ RGB32 使用 32 位来 表示一 个像 素,RGB 分量各 用去 8 位,剩下 的 8 位用作 Alpha 通道 或者不 用。
( ARGB32 就 是带 Alpha 通 道的 RGB32。
)注 意在 内存中 RGB 各分 量的排 列顺序 为: BGRA BGRA BGRA…。
通 常可以 使用 RGBQUAD 数据 结构来操 作一个 像素, 它的 定义为 : typedef struct tagRGBQUAD BYTE rgbBlue // 蓝色 分量 BYTE rgbGreen // 绿色 分量 BYTE rgbRed // 红色 分量 BYTE rgbReserved // 保留 字节 (用作 Alpha 通 道或 忽略) RGBQUAD。
编 辑本 段 主要算法 public void paintGraphics g h.clearRect0 0 370 420h.setColorColor.blackh.drawLine100 100 355 100h.drawLine100 100 100 355h.drawLine100 355 355 355h.drawLine355 100 355 355h.drawLine100 100 50 150h.drawLine355 100 305 150h.drawLine355 355 305 405h.drawLine100 355 50 405h.drawLine50 150 50 405h.drawLine50 150 305 150h.drawLine305 150 305 405h.drawLine50 405 305 405h.setColorColor.redh.fillOval45 400 10 10h.setColorColor.greenh.fillOval350 350 10 10h.setColorColor.blueh.fillOval95 95 10 10h.setColorColor.cyanh.fillOval350 95 10 10h.setColorColor.magen