Так как же можно TJPEG перекинуть в TPicture? Правильно ошибки сыпятся.
Но они не сыпятся, а иногда возникают, прчем когда данные не корректные.
Еще раз повторюсь, задача стоит такая еже как у автора https://cbuilder.ru/index.php/topic,4903.0.html.. Из потока данные которые должны быть
jpeg картинкой закинуть в TImage, для простоты просмотра. И тем методом который был предложен в указаном посту задача почти решается.
Сделаем небольшую выжимку :
Есть поток
TMemoryStream *stream = new TMemoryStream;
куда попадают данные, которые должны быть jpeg картинкой.
есть объект TJPEGImage *jpeg = new TJPEGImage;
куда данные и помещаются, в первую очередь для проверки на вшивость.
bool result = true;
try
{
int sz = stream->Size;
if( sz > NULL )
{
stream->Seek(0,0);
jpeg->LoadFromStream(stream);
}else
result = false;
}
catch(Exception &ex)
{
MessageDlg(ex.Message, mtError, TMsgDlgButtons()mbOK, 0);
result = false;
}
Данный фрагмент кода отфильтровывает, достаточно много некорректностей, ну если данные совсем не jpeg.
На форме есть объект TImage * Image1- = new TImage(this);
Куда данные и должны попадать.
if(result)
{
Image1->Picture->Assign(jpeg);
}
И при нормальных данных, можно радоваться жизни но иногда данные только похожи на jpeg, и настроение портят сообщения исключения.
причем как уже было сказано:
try
{
.........................
Image1->Picture->Assign(jpeg);
.........................
}
cath(...)
{
MessageDlg("Ошибка", mtError, TMsgDlgButtons()
}
не помогает.
Теперь про TPicture, если через LoadFromFile можно загрузить jpeg, то почему через Assign нельзя?
Во! Через файлы надо попробовать.