Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1240336721
v1keeee
2009-04-21 21:58
2009.06.28
Прошу совета по переделки интерфейса


2-1241089539
Franzy
2009-04-30 15:05
2009.06.28
Абсолютно необъяснимый глюк


15-1240342188
StriderMan
2009-04-21 23:29
2009.06.28
VSS plus


15-1239899831
dmk
2009-04-16 20:37
2009.06.28
Интерфейс программиста


2-1241790968
Гена
2009-05-08 17:56
2009.06.28
Нужно выполнить проверку DBGrid a





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский