MFC-请问一下大家,MFC中 如何从Picture控件中获取图片数据并保存为图片?
请问一下大家,MFC中 如何从Picture控件中获取图片数据并保存为图片?
具体情况是这样的:
1. 摄像机厂家提供给我 摄像机图像处理 的 Demo 程序,我在Demo 代码的基础上修改。
2. Demo 程序已经实现了 拍照和录像功能,并把图像传到 Picture 控件里。但是获取图像数据没看到Buffer,Demo 中 很多函数都没有源代码,只有头文件,都被封装到 *.lib 库文件里面了。
3. 我现在想从 Picture 控件中 或得图像数据? 怎么实现? 希望大家给个意见,非常感谢!
4. 我暂时想到了 用 BitBlt 这个函数从控件 DC 中获取数据,但是有个问题,获得的图片很大,那个Demo 中 控件的窗口还做了 OnHScroll,OnVScroll消息, 实现图像的滚动?这样的话,BitBlt 函数 就不能实现完整的 DC 拷贝了吧?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
可以运用强大的CImage类,CImage里面有函数GetWidth(),GetHight()。具体请参考这里
我想到一个很笨的方法, 但是应该是可行的, 不知道适用不适用你的.
你控制滚动条的滚动, 从顶端滚动到底端, 然后通过bitblt得到不同的滚动条位置时的picture控件中的图片位图, 然后自己拼接成完整的图片, 然后保存. 我看到浏览器的截图就是这样实现滴, 你可以看看chrome中的截图插件的效果
ps: 微软的所有标准控件都实现了WM_PRINTCLIENT函数, 可以使用该函数获取它的dc(不管窗口显示与否), 但是我没试验有滚动条的情况下得到的是完整的dc还是可视区域的dc, 你可以试一试, 如果有新发现希望告知结果