Главная страница
    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.007 c
2-1240985406
Лёша
2009-04-29 10:10
2009.06.28
Locate в отфильтрованных данных


15-1240900867
Василий Жогарев
2009-04-28 10:41
2009.06.28
PostgreSQL & UTF8


2-1241365483
Роман
2009-05-03 19:44
2009.06.28
Програмное создание компонентов на форме


15-1240326297
12
2009-04-21 19:04
2009.06.28
«Интерфейс пользователя» Идентификация


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