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

急问关于从缓冲区中将图象载解决思路

2012-02-25 
急问关于从缓冲区中将图象载从CCD中获得图象数据,存在缓冲区中,目标是将其保存至JPEG格式的文件,因此想先

急问关于从缓冲区中将图象载
从CCD中获得图象数据,存在缓冲区中,目标是将其保存至JPEG格式的文件,因此想先将其保存到BITMAP里面再转换为JPEG,
主要目标是将缓冲区的图象保存至BMP文件
      aStream:=TMemoryStream.Create;
      aStream.WriteBuffer(bfh,sizeof(BITMAPFILEHEADER));
      aStream.WriteBuffer(m_pBitmapInfo^,sizeof(BITMAPINFOHEADER));
      aStream.WriteBuffer(m_pImageBuffer[BufferIndex]^,dwImageSize);

      //aStream.SaveToFile(DestName);
      aBitmap:=TBitmap.Create;

      aBitmap.LoadFromStream(aStream);
      showmessage(inttostr(aBitmap.Width));
      aBitmap.SaveToFile(DestName);    
如果直接从STREAM中保存至BMP文件是可以的,但如果像上面这样用aBitmap.LoadFromStream(aStream);后似乎BITMAP不载入任何东西,生成的BITMAP文件是0字节。
但如果用aStream从文件载入后再用aBitmap.LoadFromStream(aStream);就没有问题
      aStream:=TMemoryStream.Create;
      aStream.LoadFromFile(DestName);

      aBitmap:=TBitmap.Create;
      aBitmap.LoadFromStream(aStream);
      //showmessage( 'Bitmap   Width= '+inttostr(aBitmap.Width));
      aBitmap.SaveToFile( '0m.bmp ');
直接用aStream.WriteBuffer和aStream.LoadFromFile有什么区别吗,两者读入的字节数是一样的。
会不会是aBitmap.loadfromStream的问题????

[解决办法]
在aBitmap.LoadFromStream之前先aStream.Position:=0;
WriteBuffer完成后指针在末尾,LoadFromStream自然读不到数据

热点排行