社区
C++ 语言
帖子详情
用纯C保存bmp位图?
vivian926
2007-01-21 05:30:16
请问如何用纯C将图片保存成bmp文件?
多谢各位大侠指教!
...全文
1018
36
打赏
收藏
用纯C保存bmp位图?
请问如何用纯C将图片保存成bmp文件? 多谢各位大侠指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
36 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xmu_才盛
2011-05-01
打赏
举报
回复
不知道位图的格式, 所以只能帮你顶了。。
qq515383106
2011-05-01
打赏
举报
回复
我要358732727@qq.com
liahr
2010-07-14
打赏
举报
回复
你应该去查一下bmp的文件格式
xushuai0794
2010-07-14
打赏
举报
回复
我有这程序,告诉我你邮箱,我发给你。。。
sugar65
2010-07-13
打赏
举报
回复
几年了??还没解决??
herman~~
2010-07-13
打赏
举报
回复
mark
wesweeky
2010-07-13
打赏
举报
回复
。每天回复
w_volove
2010-07-13
打赏
举报
回复
[Quote=引用 28 楼 wsy6634 的回复:]
http://hi.baidu.com/wsy6634/blog/item/00fb1cfbd5b12515a9d31171.html
[/Quote]
留个记号~~
wsy6634
2010-07-13
打赏
举报
回复
http://hi.baidu.com/wsy6634/blog/item/00fb1cfbd5b12515a9d31171.html
kenneth_lueng
2007-01-23
打赏
举报
回复
先看明白BMP圖的協議,然後你就知道怎麼做了
gemo
2007-01-23
打赏
举报
回复
case WM_CREATE:
{
HDC hWndDC = ::GetDC(hWnd);
hMemDC = ::CreateCompatibleDC(hWndDC);
int nScreenX = ::GetSystemMetrics(SM_CXSCREEN);
int nScreenY = ::GetSystemMetrics(SM_CYSCREEN);
hMemBmp = ::CreateCompatibleBitmap(hWndDC, nScreenX, nScreenY);
::ReleaseDC(hWnd, hWndDC);
SelectObject(hMemDC, hMemBmp);
::PatBlt(hMemDC, 0, 0, nScreenX, nScreenY, WHITENESS);
}
gemo
2007-01-23
打赏
举报
回复
void SaveBmp(const char* filename, HDC hDC, HBITMAP hBmp)
{
FILE* fp = fopen(filename, "wb");
BITMAPFILEHEADER bfh;
memset(&bfh, 0, sizeof(bfh));
bfh.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) +
1024 * 768 * 3;
bfh.bfType = MAKEWORD('B', 'M');
bfh.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
fwrite(&bfh, sizeof(bfh), 1, fp);
BITMAPINFOHEADER bih;
memset(&bih, 0, sizeof(bih));
bih.biSize = sizeof(bih);
bih.biBitCount = 24;
bih.biWidth = 1024;
bih.biHeight = 768;
bih.biCompression = BI_RGB;
bih.biPlanes = 1;
fwrite(&bih, sizeof(bih), 1, fp);
char* lpDibits = new char[1024*768*4];
memset(lpDibits, 0, 1024*768*4);
int iRet = ::GetDIBits(hDC, hBmp, 0, 768,
lpDibits, (BITMAPINFO *)&bih, DIB_RGB_COLORS);
fwrite(lpDibits, 1024*768*3, 1, fp);
delete [] lpDibits;
fclose(fp);
}
vivian926
2007-01-22
打赏
举报
回复
C++
我的意思是不用MFC
对不起哦。。
vivian926
2007-01-22
打赏
举报
回复
貌似有很多报错啊。。
wwwhaichun
2007-01-22
打赏
举报
回复
#include <fstream>
用纯C怎么又用到fstream的东西了呢?
vivian926
2007-01-22
打赏
举报
回复
我的是一个win32 application工程,头文件和cpp文件都是c++的,
#include <fstream.h>
#include <iostream.h>
以后加入
BITMAPFILEHEADERbfh;
BITMAPINFOHEADERbih;
fstream file;
然后在“保存”按钮的消息处理里加入
file.open( strName,ios::nocreate|ios::in|ios::binary );
if( !file ) return;
file.read( (char*)&bfh, sizeof(bfh) );
file.read( (char*)&bih, sizeof(bih) );
data = new BYTE[bih.biWidth*bih.biHeight*3];
file.read( (char*)data, bih.biWidth*bih.biHeight*3 );
file.close();
delete[] data;
就可以了吗
Mypiger
2007-01-22
打赏
举报
回复
#include <fstream.h>
vivian926
2007-01-22
打赏
举报
回复
我大概是有什么头文件没有加,加了这几句
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
BYTE *data;
fstream file;
以后有这样的错误:
drawer.cpp(12) : error C2079: 'file' uses undefined class 'basic_fstream<char,struct std::char_traits<char> >'
vivian926
2007-01-22
打赏
举报
回复
笨笨地问一下,fstream是什么类型?
argenCHN
2007-01-22
打赏
举报
回复
up
加载更多回复(16)
纯C语言利用
位图
底层结构实现
位图
缩放
本文介绍了一个使
用纯
C语言实现的
位图
缩放程序,通过双线性插值算法处理图像,实现了根据命令行参数读取、缩放并
保存
BMP
文件的功能。文章详细解释了
位图
结构、文件读写、内存管理及图像处理算法。
BMP
格式以及
用纯
C实现Load和Save
本文介绍了
BMP
文件的存储结构,包括
位图
文件头、
位图
信息头、调色板和图像数据,并详细讲解了
位图
文件头和
位图
信息头的各个字段。此外,还提供了
用纯
C语言实现
BMP
图像的加载和
保存
的代码示例,涵盖了16位、24位和32位
BMP
图像的处理。
目的:通过构建bitmap header将图像unsigned char*纯数据 数组图像
保存
为
位图
本文介绍如何在C环境中,使用自定义的
位图
头结构将unsignedchar*纯数据数组
保存
为
位图
图像,包括
BMP
文件头和
位图
信息头的构建,以及RGB到BGR颜色空间转换的方法。
用C语言进行
BMP
文件的读写
本文介绍如何使
用纯
C语言实现
BMP
文件的读取与
保存
,深入解析
BMP
文件结构,包括文件头、
位图
信息头及像素数据,并提供具体的代码实现。
C语言实现
位图
缩放
bmp
图片(使用命令行)
课程设计中,需要使用C语言编写一个程序,根据命令行参数对
bmp
图片进行缩放。程序接受原始图像文件名、缩放比例和新文件名为参数,将缩放后的图像
保存
为新文件。在理解
位图
存储原理的基础上,通过调试和理解算法来实现这一功能。注意保证缩放后图片的宽度和高度为整数。
C++ 语言
65,211
社区成员
250,515
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章