Главная страница
    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.004 c
15-1240584679
Кто б сомневался
2009-04-24 18:51
2009.06.28
Даже и не думайте пользоваться функцией Wow64DisableWow64FsRedire


2-1241637084
Pauk
2009-05-06 23:11
2009.06.28
Как пользоваться LoadString?


15-1240864204
Юрий
2009-04-28 00:30
2009.06.28
С днем рождения ! 28 апреля 2009 вторник


2-1241592533
подмастерье
2009-05-06 10:48
2009.06.28
Не работает ComboBox1Change


15-1240308823
MsGuns
2009-04-21 14:13
2009.06.28
Братцы, что а беспредел в "Базах" !!!!





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский