首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

求压缩BMP源的代码

2013-01-05 
求压缩BMP流的代码现在我把截屏下来的数据保存在了数组中。但由于其是BMP格式的,很大,2兆多,如果直接发送这

求压缩BMP流的代码
现在我把截屏下来的数据保存在了数组中。
但由于其是BMP格式的,很大,2兆多,如果直接发送这个数组的话耗时太长。
所以就考虑是不是可以用GdipSaveImageToStream在内存中将其压缩。
研究了半天这个GdipSaveImageToStream函数不会用。还请哪位大侠给个代码。多谢了。
。。。。。。。。。
[解决办法]
用Zlib压缩,需要的话,我有dll可以给你,留下邮箱
[解决办法]
Zlib压缩 是无损压缩,压缩BMP压缩率太低。

http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=67466&lngWId=1 

下载这个,然后你到源码里去找GdipSaveImageToStream这个函数在那个地方使用了,你就知道用法了。

如果楼主是做广域网的屏幕传输,这个函数不具有实用性,因为他的计算时间在100ms以上。


[解决办法]
既然你都到了使用 GdipSaveImageToStream 的地方了,那么你看这里就应该明白了


   ...
   ReDim PicDataByteArray(DataSize)
   FileAddr = ByteArrayToStream(PicDataByteArray)
   
   Call GdipCreateBitmapFromHBITMAP(mvarhBitmap, 0, mvarhImage)
   Call GdipDrawImageRect(mvarhGraphics, mvarhImage, 0, 0, mvarsWidth, mvarsHeight)
   
   Call GdipSaveImageToStream(mvarhImage, FileAddr, tJpgEncoder, aEncParams(1))
   
   Call GdipDisposeImage(mvarhImage)
   Call GdipDeleteGraphics(mvarhGraphics)

热点排行