社区
游戏开发
帖子详情
如何把位图的每一个像素读到一个矩阵数组中?
yzm8529
2006-10-08 08:44:14
目的是把资源文件做成背景透明纹理,所以想解决如题的问题。
...全文
171
3
打赏
收藏
如何把位图的每一个像素读到一个矩阵数组中?
目的是把资源文件做成背景透明纹理,所以想解决如题的问题。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yzm8529
2006-12-05
打赏
举报
回复
yzm8529@163.com
guohua24
2006-10-17
打赏
举报
回复
这是我的程序中读取位置i,j处数据的代码。供参考。留个信箱我把完整的Cdib给你
guohua24
2006-10-17
打赏
举报
回复
unsigned char CDib::GetData(int i, int j)
{
ASSERT(i>=0 && i<m_pBIH->biWidth);
ASSERT(j>=0 && j<m_pBIH->biHeight);
unsigned char ret;
if(m_pBIH->biBitCount == 1)
{
int width;
if((((m_pBIH->biWidth-1)/8+1)%4) != 0)
{
width = (((m_pBIH->biWidth-1)/8+1)/4+1)*4;
}
else
{
width = m_pBIH->biWidth;
}
int index = (m_pBIH->biHeight - 1 -j) * (width) + (((i)/8));
int data = m_pDibBits[index];
unsigned char mod = i%8;
ret = data&(128>>mod);
ret = ret>>(7 - mod);
}
if(m_pBIH->biBitCount == 8)
{
int width = ((m_pBIH->biWidth-1)/4 + 1)*4;
int index = (m_pBIH->biHeight - 1 -j) * (width) + i;
int tempIndex = m_pDibBits[index];
RGBQUAD rgb = m_pPalette[tempIndex];
ret = rgb.rgbBlue;
}
return ret;
}
位图
转数组头文件工具
3. **转换为数组**:解码后的
像素
数据会被组织成
一个
二维数组,数组的行按从下到上的顺序排列,这是因为
位图
文件中的
像素
数据通常是从上到下存储的,而C数组通常是按行优先顺序存储的。 4. **生成头文件**:最后,...
BMP图像转16进制数组
5. **输出和保存**:将16进制数组以文本形式输出,可以是每行
一个
像素
,或者所有
像素
连在一起,视具体需求而定。 `PixeltoHex`可能是
一个
程序或者脚本,用于执行上述操作。在实际应用中,这可能涉及使用编程语言如...
利用VB内置API函数旋转BMP
位图
实例
`GetBitmapBits`函数用于从
位图
对象中获取
像素
数据,返回
一个
字节数组,这个数组包含了
位图
的所有颜色信息。函数的参数包括
位图
句柄、要读取的字节数以及
一个
缓冲区的地址,用于存放读取的数据。 而`SetBitmapBits`...
设备无关
位图
的旋转
1. **
位图
操作**:DIB实际上是
一个
二维数组,其中每个元素代表
一个
像素
。在进行旋转时,我们需要读取原始
位图
的数据,然后将其重新排列到
一个
新的
数组中
,形成旋转后的
位图
。这通常涉及遍历原始
位图
的每个
像素
,根据...
单色
位图
旋转
在给定的描述中提到了
一个
自定义的DIB(Device Independent Bitmap)类,这个类可能包含了处理
位图
数据的核心功能。DIB是一种Windows系统中广泛使用的
位图
格式,它允许
位图
在不同的设备上保持一致的显示效果。在DIB...
游戏开发
8,324
社区成员
23,684
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章