c++图像保存

机器学习之禅 2012-11-09 08:57:40
CWnd *pEnd=GetDlgItem(IDC_STATIC3);
CDC *pControlDC=pEnd->GetDC();
pEnd->Invalidate();
pEnd->UpdateWindow();
CPen aPen;
aPen.CreatePen(PS_SOLID, 2, RGB(255,0,0));
CPen* pOldPen = pControlDC->SelectObject(&aPen);
。。。。
pControlDC->MoveTo(point1);
pControlDC->LineTo(point2);
上述代码在一个case循环里,我用上述代码,在边框为IDC_STATIC3的组件里进行画图操作。
现在,我想添加一个保存按钮,在画完后存储这个图像为bmp,请问如何获得该图像的数据?
...全文
112 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
觅食的猫猫 2012-11-13
  • 打赏
  • 举报
回复
下面这个关于BMP的格式介绍,仔细看就能看懂。 之前你或许看过,没认真看而已 http://blog.csdn.net/zhuzhu101011/article/details/1338078 下面是我用C做的,或许能当解释看下

#include <iostream>  
#include <fstream>  
using namespace std;  
#define N 480 // 原始宽度  
#define I 245 // 改变后宽度  
#define M 640 // 原始长度  
unsigned char b[960][1920];  
int main()  
{  
unsigned char a[54];  
  
unsigned char zhongzhi;  
unsigned char *pt1;  
float ni=(float)N/(float)I;             //  N/I的值  
int m=(int)((float)M/ni)/1+1;                 //   改变后的长度值,包括边缘  
float py1,py2,py3,hx1,hx2,hx3;  //竖着与横着分量的值,应该小于ni  
float hx4,hx5;  //       
int y1,y2,x1,x2; //取整的值,用来定位新像素占原像素的位置。  
  
ifstream infile("11.bmp",ios::binary);       //打开11.bmp。  
    if(!infile)  
    {cout<<"open 11.bmp error!"<<endl;  
    abort();  
    }  
  
    infile.read((char *)a,54);                //读取文件头存入数组a中。  
  
    infile.seekg(54);                           //定位  
    infile.read((char *)b,921600);                 //读取数据存入二维数组b中。  
    infile.close(); //关闭  
    int i;  
    int j;  
       
    ofstream outfile("12.bmp",ios::binary);  //打开12.bmp写数据  
    if(!outfile)  
    {cout<<"open 12.bmp error!"<<endl;  
    abort();  
    } 

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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