MFC-请问一下大家,MFC中 如何从Picture控件中获取图片数据并保存为图片?

发布于 2017-02-01 00:23:50 字数 423 浏览 1209 评论 2

请问一下大家,MFC中 如何从Picture控件中获取图片数据并保存为图片?

具体情况是这样的:
1. 摄像机厂家提供给我 摄像机图像处理 的 Demo 程序,我在Demo 代码的基础上修改。
2. Demo 程序已经实现了 拍照和录像功能,并把图像传到 Picture 控件里。但是获取图像数据没看到Buffer,Demo 中 很多函数都没有源代码,只有头文件,都被封装到 *.lib 库文件里面了。
3. 我现在想从 Picture 控件中 或得图像数据? 怎么实现? 希望大家给个意见,非常感谢!
4. 我暂时想到了 用 BitBlt 这个函数从控件 DC 中获取数据,但是有个问题,获得的图片很大,那个Demo 中 控件的窗口还做了 OnHScroll,OnVScroll消息, 实现图像的滚动?这样的话,BitBlt 函数 就不能实现完整的 DC 拷贝了吧?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浮生未歇 2017-06-10 09:26:29

可以运用强大的CImage类,CImage里面有函数GetWidth(),GetHight()。具体请参考这里

偏爱自由 2017-02-26 11:21:12

我想到一个很笨的方法, 但是应该是可行的, 不知道适用不适用你的.
你控制滚动条的滚动, 从顶端滚动到底端, 然后通过bitblt得到不同的滚动条位置时的picture控件中的图片位图, 然后自己拼接成完整的图片, 然后保存. 我看到浏览器的截图就是这样实现滴, 你可以看看chrome中的截图插件的效果

ps: 微软的所有标准控件都实现了WM_PRINTCLIENT函数, 可以使用该函数获取它的dc(不管窗口显示与否), 但是我没试验有滚动条的情况下得到的是完整的dc还是可视区域的dc, 你可以试一试, 如果有新发现希望告知结果

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文