Форум: "Начинающим";
Текущий архив: 2009.06.28;
Скачать: [xml.tar.bz2];
Внизошибка загрузки изображения из TMemoryStream Найти похожие ветки
← →
novai (2009-05-12 10:33) [0]Почему код приводит к ошибке Bitmap image is not valid:
image1.Picture.Bitmap.LoadFromStream(TempStream);
а так работает:TempStream.SaveToFile("c:\2.bmp");
image1.Picture.Bitmap.LoadFromFile("c:\2.bmp");
?
← →
{RASkov} © (2009-05-12 10:34) [1]TempStream.Position:=0
?
← →
novai (2009-05-12 10:36) [2]Спасибо! Помогло, хотя я думал, что LoadFromStream подразумевает чтение с position=0 и весь
← →
Palladin © (2009-05-12 10:37) [3]
> Помогло, хотя я думал, что LoadFromStream подразумевает
> чтение с position=0 и весь
ты правильно думал
← →
novai (2009-05-12 10:39) [4]
> ты правильно думал
тогда почему помогло?
← →
{RASkov} © (2009-05-12 10:42) [5]> [4] novai (12.05.09 10:39)
потому что он (LoadFromStream) производит чтение с position=0 и весь, но его (Position) не выставляет в нужную позицию....
А что бы не парится с позицией в потоке и есть метод LoadFromFile..... Посмотри его реализацию навсяк...)
← →
Palladin © (2009-05-12 10:43) [6]извиняюсь... я не прав... попутал LoadFromStream и LoadFromFile
← →
novai (2009-05-12 10:46) [7]судя по
procedure TBitmap.LoadFromStream(Stream: TStream);
begin
ReadStream(Stream, Stream.Size - Stream.Position);
end;
он работает с текущей Stream position, а не с 0?
← →
novai (2009-05-12 10:51) [8]в uses добавил Jpeg, но он грузит только bitmap,
а как можно в image1 загрузить jpg из TMemoryStream ?
← →
{RASkov} © (2009-05-12 10:59) [9]> [8] novai (12.05.09 10:51)
> в uses добавил Jpeg, но он грузит только bitmap,
Кодом из [0]?
> image1.Picture.Bitmap.LoadFromStream(TempStream);
Сюда jpeg точно "не влезет")
← →
Ega23 © (2009-05-12 11:01) [10]
> в uses добавил Jpeg, но он грузит только bitmap,
> а как можно в image1 загрузить jpg из TMemoryStream ?
uses JPEG;
var
jpg : TJpegImage;
ms : TMemoryStream;
begin
ms := TMemoryStream.Create;
jpg := TJpegImage.Create;
try
.... SavetoStream(ms);
ms.Position := 0;
jpg.LoadFromStream(ms);
Image1.Picture.Assign(jpg);
finally
jpg.Free;
ms.Free;
end;
end;
Ну и try..except нефигово добавить...
← →
novai (2009-05-12 11:02) [11]image1.Picture.Graphic.LoadFromStream(TempStream);
вообще не грузит ничего...
← →
novai (2009-05-12 11:09) [12]Спасибо Ega23 и всем, разобрался...
← →
Плохиш © (2009-05-12 11:12) [13]
> novai (12.05.09 10:36) [2]
>
> Спасибо! Помогло, хотя я думал, что LoadFromStream подразумевает
> чтение с position=0
Разве в справке не написано, что с текущей позиции?
← →
Anatoly Podgoretsky © (2009-05-12 11:23) [14]> Плохиш (12.05.2009 11:12:13) [13]
В справке указано, что с 0
> LoadFromStream always sets the Position of the source stream to 0, before streaming in the number of bytes indicated by the source stream’s Size property
← →
Плохиш © (2009-05-12 12:03) [15]
> Anatoly Podgoretsky © (12.05.09 11:23) [14]
Хм, и где в ветке говориться об использовании метода TMemoryStream.LoadFromStream?
Речь шла о методе TBitmap.
← →
Palladin © (2009-05-12 12:16) [16]У меня в справке это не указано.
← →
Anatoly Podgoretsky © (2009-05-12 12:47) [17]
> Плохиш © (12.05.09 12:03) [15]
И правда где? :-)
← →
Плохиш © (2009-05-12 14:07) [18]
> Anatoly Podgoretsky © (12.05.09 12:47) [17]
>
>
> > Плохиш © (12.05.09 12:03) [15]
>
> И правда где? :-)
Правда, как всегда, в исходниках ;-)
procedure TBitmap.LoadFromStream(Stream: TStream);
begin
ReadStream(Stream, Stream.Size - Stream.Position);
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.06.28;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.005 c