Вы можете использовать эту функцию (даенный с помощью Delphi 2010), чтобы загрузить файл через HTTP и сохранить его в TBitmap. Он прочту все типы файлов, которые имеют зарегистрированную поддержку в TGraphic hiearachy Delphi, и будет автоматически обнаруживать BMP, GIF, JPG и PNG форматы файлов:
USES Graphics, IdHTTP, PngImage, jpeg, GIFImg;
FUNCTION DownloadImage(CONST URL : STRING ; ImageType : TGraphicClass = NIL) : TBitMap;
VAR
HTTP : TIdHttp;
S : TStream;
IMG : TGraphic;
STR : AnsiString;
BEGIN
HTTP:=TIdHttp.Create(NIL);
TRY
S:=TMemoryStream.Create;
TRY
HTTP.Get(URL,S);
IF NOT Assigned(ImageType) THEN BEGIN
S.Position:=0;
SetLength(STR,5);
S.Read(STR[1],LENGTH(STR));
IF COPY(STR,1,2)='BM' THEN
ImageType:=TBitMap
ELSE IF COPY(STR,1,3)='GIF' THEN
ImageType:=TGIFImage
ELSE IF COPY(STR,2,3)='PNG' THEN
ImageType:=TPngImage
ELSE IF (ORD(STR[1])=$FF) AND (ORD(STR[2])=$D8) THEN
ImageType:=TJPEGImage
END;
IF NOT Assigned(ImageType) THEN RAISE EInvalidImage.Create('Unrecognized file format!');
IMG:=ImageType.Create;
TRY
S.Position:=0;
IMG.LoadFromStream(S);
Result:=TBitMap.Create;
TRY
Result.Assign(IMG)
EXCEPT
Result.Free;
RAISE
END
FINALLY
IMG.Free
END
FINALLY
S.Free
END
FINALLY
HTTP.Free
END
END;
Если вы уже знаете, тип файла, вы можете указать это как второй параметр, как TGifImage, TPngImage, TJPegImage или TBitMap. Если нет, программа попытается автоматически обнаружить ее среди этих четырех типов. Если вы используете пользовательский графический тип, вам нужно указать его как 2-й параметр или обновить логику автоматического обнаружения, чтобы обнаружить его.
Итак, если вы хотите использовать его, чтобы отобразить загруженное изображение в TImage без сохранения его на диск, вы можете использовать его таким образом:
VAR
BMP : TBitMap;
BEGIN
BMP:=DownloadImage('http://domain.com/image.jpg');
TRY
Image1.Picture.Assign(BMP)
FINALLY
BMP.Free
END
END;
Стандарт «Delphi» (например, Delphi 2010 или RAD Developer XE) - это одно: он поставляется с очень богатым набором библиотек и элементов управления. Библиотека ["cximage"] (http://www.xdp.it/cximage/) C++ - это нечто другое. И элемент управления DevExpress TcxImage - это еще одна вещь. Q: Что вы имеете в виду? Вопрос: Вы посмотрели документацию? – paulsm4