色彩转换的问题.

weixiaohua 2009-09-21 09:16:23
怎么把16位色转换到32位色.
我需要的是转换公式,不是类似Bmp.PixelFormat := pf32Bit;这样的方法.


谢谢.
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixiaohua 2009-09-22
  • 打赏
  • 举报
回复
顶啊.
weixiaohua 2009-09-22
  • 打赏
  • 举报
回复
问题已经解决,可惜了我的50分纳.
de410 2009-09-22
  • 打赏
  • 举报
回复
参考以下这个

图像处理--真彩转256色

http://blog.csdn.net/zuzubo/archive/2007/05/06/1597985.aspx

weixiaohua 2009-09-22
  • 打赏
  • 举报
回复
我按照你给的方法转换出来的颜色不对呢.

R := (Color shl 11) and $1F;
G := (Color shl 5) and $3F;
B := Color and $1F;

R := R * $FF div $1F;
B := B * $FF div $1F;
G := G * $FF div $3F;

OutPx^ := (B + (G shl 8) + (R shl 16));
Seamour 2009-09-22
  • 打赏
  • 举报
回复
32位实际上是加上一个对齐字节的8:8:8的24位色,16位色是5:6:5的颜色
简单来说就是对应颜色位上把 $FF(8位)和 $1F(5位)、$3F(6位)之间的转换,也就是 r、b * $FF div $1F 和 g * $FF div $3F 对应转换再拼一起就可以了
weixiaohua 2009-09-22
  • 打赏
  • 举报
回复
我要的是16位传32位啊.

拜托各位了.急.
柯本 2009-09-21
  • 打赏
  • 举报
回复
研究一下delphi目录下的
Source\Vcl\Graphics.pas
也许对你有帮助
(它有TBitMap class的源码)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧