Я хочу получить изображение из Интернета в потоке (без сохранения) и отобразить его на TImage. Следующий код выдает ошибку:Получить изображение из Интернета и отображения с помощью Synapse
response := TMemoryStream.Create;
try
HttpGetBinary('http://www.example-url/example_image.jpg', response);
Image.Picture.LoadFromStream(response);
finally
response.Free;
end;
Проект ------- поднял класс исключения «EReadError» с сообщением: поток ошибка чтения
Это функция в библиотеке Synapse (в picture.inc), что ошибка указывает на:
function TPicFileFormatsList.FindByStreamFormat(Stream: TStream): TGraphicClass;
var
I: Integer;
begin
for I := Count - 1 downto 0 do
begin
Result := GetFormats(I)^.GraphicClass;
if Result.IsStreamFormatSupported(Stream) then // <<<<<< this is the error line
Exit;
end;
Result := nil;
end;
Установите положение потока до начала, прежде чем загружать его в изображение. Как 'response.Position: = 0; Image.Picture.LoadFromStream ... ' – TLama
Я пробовал это перед публикацией здесь. Результат тот же. – user3327194