游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2947|回复: 3

24bit to 16bit??Q

[复制链接]

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2004-1-2 00:39:00 | 显示全部楼层 |阅读模式
各位大大:
小弟有事?教:
小弟想把24bit的bmp?n???6bit的bmp?n, ??情?r如下:
有二??data structure
一??是BITMAP_FILE, 一??是BITMAP_IMAGE, ???如下:
XXXX24_TAG
{
   int xxx,
   int yyy,
   BYTE *buffer;  //用???bmp中?入image data---24bit, 3?8bit
}
xxxx16_TAG
{
   int xxx,
   int yyy,
   WORD *buffer;  //另一???料???, 用?泶娣?6bit的image data, 1?16bit
}

但小弟把24bit的???6bit之後,  之?料??入16bit的???中, 再用16bit的?料???在dd surface??D, 可以通???, 但?绦?r?s出???, ??xc0000005, 用de_bug?y?, ??是??4bit?Q??6bit, 在??6bit?料??入16bit????r出?, 但小弟??4bit的?Q??6bit之後直接??入surface, ?s?]有出???, 能??r出?面!! 小弟是一??bit, 一??bit的??Q再??入...
小弟在此想?教各位大大, 能有什?方法可以??4bit的.bmp?Q??6bit, 再??入另一?????中, 或者是小弟的方法出了什??呢,
?望各位大大?教!!!!!!  [em20]

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20468
发表于 2004-1-2 10:12:00 | 显示全部楼层

Re:24bit to 16bit??Q

一般都是自己计算的,已知24bit的数据源和16bit的色彩排列(565、555),进行位运算就能把24bit转换成16bit。

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2004-1-3 13:43:00 | 显示全部楼层

Re:24bit to 16bit??Q

我是用565格式的, 由24bit?到16bit?]有???, ???出在?⑥D?Q之後的16bit??入新的data structure中出了???, 小弟是一??像素一??像素??的
以下??ode:
dest_ptr   = (WORD*)image->buffer;//16bit?料???中的member                               
WORD buffer=0; //buffer store the 16bit data                               
for(int index_y = 0; index_y < bitmap->bitmapinfoheader.biHeight; index_y++)                //copy the source to dest, line by line
{
for(int index_x = 0; index_x < bitmap->bitmapinfoheader.biWidth; index_x++)
{
                       
UCHAR blue        =(bitmap->buffer[index_y*bitmap->bitmapinfoheader.biHeight*3 + index_x*3+0])>>3;
UCHAR green        =(bitmap->buffer[index_y*bitmap->bitmapinfoheader.biHeight*3 + index_x*3+1])>>3;
UCHAR red        =(bitmap->buffer[index_y*bitmap->bitmapinfoheader.biHeight*3 + index_x*3+2])>>3;

buffer = _RGB16BIT565(red, green, blue);
                       
dest_ptr[index_x + (index_y * (image->width))] = buffer;
}

0

主题

21

帖子

21

积分

注册会员

Rank: 2

积分
21
发表于 2004-1-17 18:27:00 | 显示全部楼层

Re:24bit to 16bit??Q

0xc0000005异常好像是访问了无相应权限的内存段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 00:24

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表