Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизКак скопировать картинку из TWebBrowser в TImage? Найти похожие ветки
← →
Jetus © (2006-10-25 10:28) [0]На страничке в моём WebBrowser"e есть несколько картинок. На форме также есть компонент TImage.
Как мне скопировать конкретную картинку из браузера в TImage?
← →
MetalFan © (2006-10-25 15:13) [1]знаю, как через буфер обмена можно сделать
← →
Gero © (2006-10-25 15:17) [2]Сохранить на диске, потом загрузить в TImage.
← →
MetalFan © (2006-10-25 15:24) [3]
> Gero © (25.10.06 15:17) [2]
>
> Сохранить на диске, потом загрузить в TImage.
видел код, но он снова грузит картинку из инета по ее src...
через клипборд без повторной загрузки...
← →
Gero © (2006-10-25 15:40) [4]> [3] MetalFan © (25.10.06 15:24)
Это был плохой код. Хороший код грузить без надобности не будет.
Через клипбоард очень плохой вариант, так как у пользователя там может быть все, что угодно включая пароль на винду, код к подьезду и пин кредитной карточки.
← →
MetalFan © (2006-10-25 15:46) [5]так изображение уже дб на диске во временной дирестории ие. вот только как узнать где оно?
а как сохранить в файл картинку?
← →
Gero © (2006-10-25 15:58) [6]Что-то вроде этого:
uses
ExtActns, WinInet;
type
TForm1 = class(TForm)
FDownloadURL: TDownloadURL;
end;
implementation
function GetCacheFileName(const Url: string; var FileName: string): Boolean;
var
Info: PInternetCacheEntryInfo;
InfoBufSize: Cardinal;
begin
Result := False;
InfoBufSize := 0;
GetUrlCacheEntryInfo(PChar(Url), TInternetCacheEntryInfo(nil^), InfoBufSize);
if GetLastError = ERROR_INSUFFICIENT_BUFFER then
begin
GetMem(Info, InfoBufSize);
try
Result := GetUrlCacheEntryInfo(PChar(Url), TInternetCacheEntryInfo(Info^), InfoBufSize);
if Result then
FileName := Info^.lpszLocalFileName;
finally
FreeMem(Info);
end;
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FDownloadURL := TDownloadURL.Create(nil);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
FDownloadURL.Free;
end;
procedure TForm1.SaveImageFromIE(Image: IHTMLImgElement; const SaveFileName: string);
var
URL: string;
CacheFileName: string;
begin
URL := Image.src;
if LowerCase(Copy(URL, 1, 7)) = "file://" then
CopyFile(PChar(URL), PChar(SaveFileName), False)
else
begin
if GetCacheFileName(URL, CacheFileName) and FileExists(CacheFileName) then
CopyFile(PChar(CacheFileName), PChar(SaveFileName), False)
else
begin
FDownloadURL.URL := URL;
FDownloadURL.Filename := SaveFileName;
FDownloadURL.ExecuteTarget(nil);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
Image: IHTMLImgElement;
begin
Image := (WebBrowser.Document as IHTMLDocument2).images.item("my_img", 0) as IHTMLImgElement;
if Image <> nil then
SaveImageFromIE(Image, "C:\MyImg.jpg");
end;
Писал здесь, поэтому могут быть ошибки.
← →
MetalFan © (2006-10-25 16:09) [7]супер) в FAQ бы это... а то чтото не нашел нигде)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.382 c