单文档中,保存窗口某一区域图像信息

sciencstf 2010-05-27 04:58:20
我想在在窗口中显示很多张图片,我想以他们左上角的坐标为基准进行图像保存,可是我不知道在哪里修改这个左上角值的设定。这是我保存图像的代码

int xcount = 0;//每行几张图片
int ycount = 0;//多少行

for (int i = 0 ; i < file_num ; i++)
{
CClientDC dc(this);
CBitmap bmpForSave;
CDC cdcForSave;
CRect r
GetClientRect(&r);
bmpForSave.CreateCompatibleBitmap(&dc , point.x, point.y);
cdcForSave.CreateCompatibleDC(&dc);
cdcForSave.SelectObject( bmpForSave );
cdcForSave.BitBlt(0,0,point.x,point.y,&dc,0,0,SRCCOPY);//point.x 和point.y是图片大小
//OnDraw( &cdcForSave );

//这里是循环命名给图片
CString filemuns ;
filemuns.Format("%d",i);
CString strFilesName = strFileName +filemuns+ '.' + strExtension;
SaveBitmap( (HBITMAP)bmpForSave , strFilesName );//这个函数就是保存函数

//换行判断
if (xcount < 2)
{
xcount++ ;
}
else
{
xcount = 0 ;
ycount++;
}
}
ReleaseDC(&dc);
if (AfxMessageBox("图像保存完毕!"))
{
PostMessage(WM_QUIT);
}





void CImageView::SaveBitmap(HBITMAP hBitMap,CString FileName)
{
CImage image;
image.Attach( hBitMap );
image.Save( FileName );
image.Detach();
}

...全文
92 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
finder_zhang 2010-05-28
  • 打赏
  • 举报
回复
这里是把 屏幕 DC 复制到 你的 保存DC 里,
BitBlt 函数的开始2个参数0,0 不可以改,改了,你要保存的图,就不是从最左上角开始画.
例如你这里写成 10,30 ,那么最上面30,最左边10都会是黑的,因为是从 10,30,开始画.

假设你要保存 20,40 开始的位置,宽度是100,高度300.
cdcForSave.BitBlt(0,0,100(宽度),300(高度),&dc,20(开始位置),40(开始位置),SRCCOPY);
xiuxianshen 2010-05-28
  • 打赏
  • 举报
回复

cdcForSave.BitBlt(0,0,point.x,point.y,&dc,0,0,SRCCOPY);//point.x 和point.y是图片大小

(0,0)就是你的左上角的值,你可以根据你的图像的坐标值来设定新的左上角(x,y)
sciencstf 2010-05-28
  • 打赏
  • 举报
回复
为什么我改变了0,0值 保存下来的图片确实一片黑的。
fishion 2010-05-27
  • 打赏
  • 举报
回复
cdcForSave.BitBlt(0,0,point.x,point.y,&dc,0,0,SRCCOPY);//红色部分可以控制位置和大小
fishion 2010-05-27
  • 打赏
  • 举报
回复
cdcForSave.BitBlt(0,0,point.x,point.y,&dc,0,0,SRCCOPY);//红色部分可以控制位置和大小
wltg2001 2010-05-27
  • 打赏
  • 举报
回复
cdcForSave.BitBlt(0,0,point.x,point.y,&dc,0,0,SRCCOPY);//point.x 和point.y是图片大小
===============
这里可以选择源DC的起始位置吧。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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