我正在尝试制作一个屏幕共享程序,程序流程将是这样的:
但是我在更换切片时遇到了一些问题(在替换功能中)。从我搜索的所有源代码中我需要将位图图像(切片)转换为字符串,然后我可以替换。但没有将位图双数组转换为字符串的示例。
是否有可能在不将图像转换为字符串的情况下替换图像?
答案 0 :(得分:0)
为什么需要使用字符串替换位图数据作为中间值?你可以使用位图操作函数。另外,我无法理解你的算法。你得到整个屏幕的位图。然后你把它切成9个部分(那些是角落,边缘和中心?),逐个比较每个切片到它们的旧版本,替换那些改变的那些,然后你上传整个位图?您不想单独上传每个切片,只上传更改的切片吗?否则,根本不进行切片是否有意义,或者它是否真的有意义呢?
现在,将数据转换为字符串确实可以让你使用字符串比较函数和其他类似的东西,但这是一个糟糕的主意。比较两个字节数组的最快方法是使用memcmp
中的msvcrt.dll
函数。这个答案为您提供了解决方案 - https://stackoverflow.com/a/2038515/3032289,包括从原始位图读取数据。
然后您只需发送与旧版本不同的切片,即可完成,无需更换。
答案 1 :(得分:0)
可能最好的方法是执行Base64 encoding
Google for base64 C ++源代码。