社区
图形处理/算法
帖子详情
图像保存为bmp文件
wangyanboq
2007-04-29 12:45:50
一个512×512的彩色图像,已经解码出来了,RGB分别放在三个数组中channel[0]、channel[1]、channel[2]中,如何保存为bmp格式文件?
...全文
363
3
打赏
收藏
图像保存为bmp文件
一个512×512的彩色图像,已经解码出来了,RGB分别放在三个数组中channel[0]、channel[1]、channel[2]中,如何保存为bmp格式文件?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
setsailgo
2007-04-29
打赏
举报
回复
http://it.sohu.com/2004/03/15/78/article219447801.shtml
就是这个怪兽
2007-04-29
打赏
举报
回复
首先要知道bmp位图格式
1.文件头
2.文件信息头
3.调色版
4.图像数据
从楼主的数据看来,应该是24位的吧
那没必要用到调色板
BITMAPFILEHEADER bf; //位图文件头
BITMAPINFOHEADER bi; //位图信息头
BYTE *lpBuf; //位图数据
int nWidth = 512; //位图宽
int nHeight = 512; //位图高
//BMP文件信息头
bi.biSize = 40;
bi.biWidth = nWidth;
bi.biHeight = nHeight;
bi.biPlanes = 1;
bi.biBitCount = 24;
bi.biCompression = BI_RGB;
bi.biSizeImage = (nWidth*24 +31)/32*4*nHeight;
bi.biXPelsPerMeter = 0;
bi.biYPelsPerMeter = 0;
bi.biClrUsed = 0;
bi.biClrImportant = 0;
//为图像数据申请空间
lpBuf = (BYTE*)malloc( sizeof(BYTE) * bi.biSizeImage );
//BMP文件头
bf.bfType = 0x4d42;
bf.bfSize = 14 + 40 + bi.biSizeImage;
bf.bfReserved1 = 0;
bf.bfReserved2 = 0;
bf.bfOffBits = 14 + 40;
CFile file;
file.Open("C://bmp.bmp", CFile::Create|CFile::Write);
file.Write((void*)&bf, sizeof(BITMAPFILEHEADER));
file.Write((void*)&bi, sizeof(BITMAPINFOHEADER));
file.Write((void*)lpBuf, sizeof(BYTE) * bi.biSizeImage);
file.Close();
以上代码没上机测试过.这只是方法
SuperCpp
2007-04-29
打赏
举报
回复
用OpenCV很容易做
//channel[0]、channel[1]、channel[2] 分别是usnigned char类型的,长度为512 * 512的数组
const int nWidth = 512;
const int nHeight = 512;
IplImage* pImg = cvCreateImage(cvSize(nWidth, nHeight), IPL_DEPTH_8U, 3);
int nCount = 0;
for(int i = 0; i < nHeight; i++)
{
for(int j = 0; j < nWidth; j++)
{
unsigned char* pData = (unsigned char*)(pImg->imageData + j * pImg->widthStep + i * pImg->nChannels * sizeof(unsigned char));
//OpenCV中RGB的排列顺序是BGR
pData[2] = channel[0][nCount]; //R
pData[1] = channel[1][nCount]; //G
pData[0] = channel[2][nCount]; //B
nCount++;
}
}
cvSaveImage("BMPImage.bmp");
截屏并
保存
为
BMP
文件
截屏并
保存
为
BMP
文件
,截取屏幕上任意矩形,并
保存
为
BMP
图片
文件
一个将
图像
数据
保存
为
BMP
文件
的实例
这是一个将
图像
数据
保存
为
bmp
文件
的实例程序,很适合初学者,经过调试,代码完全可用
保存
图像
数据为
bmp
文件
的实现函数
搞了好久,也找了很久,最后还是实现了把内存中的
图像
数据RGB
保存
为
BMP
图像
文件
,输入的只有四个参数,
图像
存放地址,
图像
宽度,
图像
高度,
图像
名字,很快捷哦
vc中将客户区
图像
保存
为
bmp
位图
文件
vc++ 中,将客户区显示的
图像
保存
为
bmp
文件
的程序
VC
图像
保存
bmp
文件
将客户区的
图像
保存
到
bmp
文件
,通过截取屏幕实现
图形处理/算法
19,469
社区成员
50,697
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章