社区
图形处理/算法
帖子详情
把屏幕保存成图片的问题
Aerith
2006-04-27 10:02:57
我要用VC做一个类似Windows画图的工具,主要功能就是把在窗口画的线条保存成图片,以供web使用。画的过程没什么问题,主要问题在保存图片上。
第一个问题是,选择什么工具比较好?我在网上搜到了IPICTURE和CXImage,都是处理图片用的。但是我都没用过,不知道哪个可以满足我的需要。是否还有别的办法?请用过相关工具的朋友们介绍一下,谢谢。
还有的问题就是,保存成什么格式的图片好呢?bmp,jpg,gif,png……?
...全文
282
5
打赏
收藏
把屏幕保存成图片的问题
我要用VC做一个类似Windows画图的工具,主要功能就是把在窗口画的线条保存成图片,以供web使用。画的过程没什么问题,主要问题在保存图片上。 第一个问题是,选择什么工具比较好?我在网上搜到了IPICTURE和CXImage,都是处理图片用的。但是我都没用过,不知道哪个可以满足我的需要。是否还有别的办法?请用过相关工具的朋友们介绍一下,谢谢。 还有的问题就是,保存成什么格式的图片好呢?bmp,jpg,gif,png……?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
y_cc
2006-05-16
打赏
举报
回复
up
CUG122032
2006-05-15
打赏
举报
回复
void CDemo1_0View::SaveDC()
{
MemDC.DeleteDC();
Bitmap.DeleteObject();
CClientDC dc(this);
CRect rect;
GetClientRect(rect);
int Width = rect.Width();
int Height = rect.Height();
MemDC.CreateCompatibleDC(&dc);
Bitmap.CreateCompatibleBitmap(&dc,Width,Height);
MemDC.SelectObject(Bitmap);
MemDC.BitBlt(0, 0, Width, Height, &dc,0, 0, SRCCOPY);
nDraw = 1;
}
//上面这段把屏幕存到一块内存DC中---MemDC
下面这段把MemDC中的内容存成一个***.bmp文件.
void CDemo1_0View::OnFileSave()
{
Bitmap.GetBitmap(&bm);
DWORD size = bm.bmWidthBytes * bm.bmHeight;
LPSTR lpData = (LPSTR)GlobalAllocPtr(GPTR, size);
BITMAPFILEHEADER bfh;
BITMAPINFOHEADER bih;
bih.biBitCount = bm.bmBitsPixel;
bih.biClrImportant = 0;
bih.biClrUsed = 0;
bih.biCompression = 0;
bih.biHeight = bm.bmHeight;
bih.biPlanes = 1;
bih.biSize = sizeof(BITMAPINFOHEADER);
bih.biSizeImage = size;
bih.biWidth = bm.bmWidth;
bih.biXPelsPerMeter = 0;
bih.biYPelsPerMeter = 0;
GetDIBits(MemDC,Bitmap,0,bih.biHeight,lpData,(BITMAPINFO*)&bih,DIB_RGB_COLORS);
bfh.bfReserved1 = bfh.bfReserved2 = 0;
bfh.bfType = ((WORD)('M'<< 8)|'B');
bfh.bfSize = 54 + size;
bfh.bfOffBits = 54;
CFileDialog dlg(false,_T("BMP"),_T("*.bmp"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,_T("*.bmp|*.bmp|*.*|*.*|"));
if (dlg.DoModal()!=IDOK)
return;
CFile bf;
CString ss=dlg.GetPathName();
if(bf.Open(ss, CFile::modeCreate | CFile::modeWrite))
{
bf.WriteHuge(&bfh, sizeof(BITMAPFILEHEADER));
bf.WriteHuge(&bih, sizeof(BITMAPINFOHEADER));
bf.WriteHuge(lpData, size);
bf.Close();
AfxMessageBox("已保存,可安全关闭~~");
}
GlobalFreePtr(lpData);
}
Aerith
2006-05-15
打赏
举报
回复
请问,GDI+和GDI能混用吗?
比如说我用GDI方式画图,再用GDI+来保存图片?
Aerith
2006-04-29
打赏
举报
回复
网上搜到的关于GDI+的例子都是“打开图片-修改-保存图片”这样一个过程,而我现在要做的不是打开图片,而是用程序生成一幅图片,而且不一定是画在屏幕上,有可能是在内存里画,然后保存成文件,这样该怎么创建呢?
moloto2004
2006-04-27
打赏
举报
回复
using gdi+
android调用拍照存储demo
android一个demo,演示功能:调用系统相机拍照,将返回的照片显示在
屏幕
上,并存储到sd上。
VC++
屏幕
捕获并
保存
成
图片
(附源码)
捕获
屏幕
图像,并
保存
到
图片
文件中!
uni-app页面部分模块转化
成
图片
并
保存
(适用app和h5)以及涉及轮播滚动时,区分轮播内容生
成
图片
方法
上一篇uni-app的截屏是截取整个页面的内容,这一篇描述页面中一部分模块转化
成
图片
并
保存
的方法。 效果描述: (页面:上面是一个卡片加二维码/条形码,下面是一个轮播,可以切换不同的卡片,轮播如果把id包裹在外层的画,只能把第一张生
成
图片
,后面几张就会出现空白) (需要生
成
图片
的样子如下:) 轮播部分需要的
图片
如下: 这里生
成
图片
的方法主要用到了html2canvas和renderjs。 html2canvas的使用方法: npm i html2canvas // 找到项目目录直接下载 import
C# WinForm如何截取
屏幕
并
保存
图片
到本地
C# WinForm如何截取
屏幕
并
保存
图片
到本地 static void toScreen()//截屏并存储到D盘Screen文件夹中 { //设置显示
屏幕
为主屏(windows主屏) Screen scr = Screen.PrimaryScreen; //获取
屏幕
边界参数 Rectangle rc = scr.Bounds; //获取
屏幕
分辨率宽度值 int iWidth = rc.Width; //获取
屏幕
分辨率高度值 int iHeig
如何一次性
保存
html
图片
大小,
保存
网页
图片
的几种方法(批量)
看到网页中的漂亮
图片
,或许就有
保存
的冲动;有些可以轻易
保存
,有些可能出于版权的原因禁止
保存
。对于禁止
保存
的网页
图片
,有没有办法
保存
呢?如果想一次性
保存
网页中的多张
图片
,又该怎么办呢?对于上面两个
问题
,下面将从易到难、由浅入深渐渐分享
保存
网页
图片
的方法。一、
保存
网页
图片
最简单的方法:另存为1、在要
保存
的网页
图片
上单击右键,选择“另存为”,如图1所示:图12、定位到
保存
图片
的文件夹,单击“
保存
”即可。...
图形处理/算法
19,468
社区成员
50,700
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章