TBimap的SaveToFile与SaveToStream有何区别?
我写了以下程序进行跟踪观察,发现对于不同的bmp图片(都是320X240 24位的),
得到的结果不同,有时file.bmp=stream.bmp,而对于另外一些图片,
file.bmp!=stream.bmp,大小不相等.此时file.bmp可用,而stream.bmp就不可
用了,是不是因为savetostream把tbitmap的一些信息也存到了st中?但是据观察,
st->Size的值总是与file.bmp的大小相等,是正确的值,
可是一旦把st写入到文件中后,文件的大小就与file.bmp变得不相等,也就是说st->Size
竟然与文件大小不同!
是不是我的程序有什么错误,可是为何有的bmp就可以呢?
到底SaveToFile与SaveToStream有何区别?
如果我要把bmp1作为bmp格式写入到文件中,不用savetostream,因为我要好几幅
bmp写到同一个文件中,该怎么做?说出方法就给分!!!
TMemoryStream* st=new TMemoryStream;
Graphics::TBitmap* bmp1=new Graphics::TBitmap;
st->Seek(0,soFromBeginning);
bmp1->LoadFromFile("background.bmp");
bmp1->SaveToFile("file.bmp");
bmp1->SaveToStream(st);
char* a=new char[st->Size];
st->Seek(0,soFromBeginning);
st->ReadBuffer(a,st->Size);
FILE* fp;
fp=fopen("stream.bmp","w");
fwrite(a,st->Size,1,fp);
fclose(fp);
delete bmp1;
delete st;
delete a;