Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.18;
Скачать: CL | DM;

Вниз

Потоки и картинки, картинки и потоки...   Найти похожие ветки 

 
SkyQuake ©   (2002-07-04 20:17) [0]

Я уже, похоже толком заколебал своими потоками и картинками, но вот незадача, пишу:

var Buf: Pointer
...
MStream:= TMemoryStream.Create;
Image1.Picture.LoadFromFile("picture.bmp");
Image1.Picture.Graphic.SaveToStream(MStream);
MStream.Position:=0;
GetMem(Buf,MStream.Size);
MStream.Read(Buf^,MStream.Size);
// Теперь я хочу поместить Buf^ опять в поток и загрузить в картинку
MStream.Clear;
MStream.Write(Buf^,Length(string(Buf)));
asd:=MStream.Size;
ShowMessage(IntToStr(asd));
Image2.Picture.Bitmap.LoadFromStream(MStream);

И Image2 пуст. Зараза:(


 
MBo ©   (2002-07-04 20:55) [1]

Раз уж ты не хочешь хранить объем данных в отдельной переменной, сделай так

var S: String;
...
MStream:= TMemoryStream.Create;
Image1.Picture.LoadFromFile("picture.bmp");
Image1.Picture.Graphic.SaveToStream(MStream);
MStream.Position:=0;
SetLength(S,MStream.Size);
MStream.Read(S[1],MStream.Size);
MStream.Clear;
MStream.Write(S[1],Length(S));
Image2.Picture.Bitmap.LoadFromStream(MStream);


а это: Length(string(Buf)) даже комментировать не хочется

btw: об Assign слышал?


 
SkyQuake ©   (2002-07-04 22:58) [2]

> MBo
И попробывал, а кртинка на Image2 так и не появилась :(


 
SkyQuake ©   (2002-07-04 23:19) [3]

Блин. Всего то навсего надо было поставить:
MStream.Position:=0;

перед
Image2.Picture.Bitmap.LoadFromStream(MStream);


 
kull ©   (2002-07-05 01:11) [4]

Бесполезно Buf к string приводить.
Buf - это двоичные данные, тем более, что среди них как нефиг делать встретится нулевой символ, т.е. конец строки.


 
MBo ©   (2002-07-05 06:21) [5]

>SkyQuake
про Position тоже верно, но маразм Length(string(Buf)) ты все-таки не используй.

>kull
В AnsiString можно хранить любые двоичные данные, Length записана независимо, и нули в середине строки ей не помешают, они играют роль лишь при преобразовании в PChar



Страницы: 1 вся ветка

Текущий архив: 2002.07.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.012 c
1-58136
s
2002-07-09 09:20
2002.07.18
Проблема с QuickReport


3-58023
Дмитрий Баранов
2002-06-27 18:52
2002.07.18
Программный запуск DTS-пакета MSSQL


1-58206
Jmenya
2002-07-06 14:42
2002.07.18
Уважаемые Мастера .....


14-58272
AlexPetrov
2002-06-20 11:27
2002.07.18
Улучшенный ScrollBox


1-58156
kserg@ukr.net
2002-07-05 16:15
2002.07.18
Как узнать над каким объектом формы