【发布时间】:2013-05-10 20:00:38
【问题描述】:
我正在制作屏幕截图并将位图的位检索到字符缓冲区中。我想通过winsock把它发送到另一个程序。这是成功的,但发送位图会消耗处理器,所以我想压缩位图以通过 winsock 发送。
我应该使用 GDI 的哪些库或方法? 我不熟悉 GDI+,所以我更喜欢非 GDI+ 解决方案。如果需要 GDI+,欢迎提供任何指向优秀教程的链接。
一旦我收到从服务器到客户端的位,我将如何将其显示回来>?普通的 bitblt 函数是否可以与缓冲区一起使用,或者我该怎么做?
谢谢。
【问题讨论】:
-
是否允许有损压缩?如果是这样,请使用 JPEG 格式。这在 gdi 中不可用,但在 gdi plus 中。如果你不想要 gdiplus,有开源 jpeg 库。对于屏幕截图,png 格式可能会更好。
-
如果目标只是减少带宽,那么当您可以使用 gzip 之类的真实压缩方式按原样压缩位图数据时,转换为另一种图像格式是毫无意义的。
-
@RemyLebeau:我理解你的意思,但 JPEG 的压缩肯定是“真实的”。 “无损”(或者可能是“通用”,而不是面向图片)会是一个更好的描述。
标签: c++ windows winapi gdi+ gdi