Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.191.254.0] |
|
Сообщ.
#1
,
|
|
|
значит проблема такая
загружаю в twebbrowser jpeg-картинку, надо ее просто сохранить или хотя бы поместить в stream, не загружая второй раз загружать другими способами не надо в поиске то что мне надо не нашел... |
Сообщ.
#2
,
|
|
|
Попробуй поработать через яву-скрипт.
Что то например..... <script language="JavaScript"> var img=new Image(); img.src="......."; </script> Code |
Сообщ.
#3
,
|
|
|
я навер туплю но мне тупо на комп через дельфи
|
Сообщ.
#4
,
|
|
|
Взято с DelphiWorld и немного изменено:
uses UrlMon; function DownloadFile(SourceFile, DestFile: string): Boolean; begin try Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; except Result := False; end; end; procedure SaveAllImagesToDir(const DirPath: string; WB: TWebBrowser); var k, p: Integer; Source, dest, ext: string; egin for k := 0 to WB.OleObject.Document.Images.Length - 1 do begin Source := WB.OleObject.Document.Images.Item(k).Src; p := LastDelimiter('.', Source); ext := UpperCase(Copy(Source, p + 1, Length(Source))); if (ext = 'GIF') or (ext = 'JPG') or (ext = 'JPEG') then begin p := LastDelimiter('/', Source); dest := DirPath + Copy(Source, p + 1, Length(Source)); DownloadFile(Source, dest); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin SaveAllImagesToDir('C:\Images\', WebBrowser1); end; Данный код сохранит все GIF и JPEG картинки из страницы, открытой в WebBrowser1, в папку C:\Images, сохраняя исходные имена файлов. Обращаю внимание на завершающий слэш в конце пути 'C:\Images\' и на то, что папка должна существовать. |
Сообщ.
#5
,
|
|
|
Цитата DownloadFile(Source, dest); эт повторная загрузка... мне б без нее |
Сообщ.
#6
,
|
|
|
Повторной загрузки быть не должно. Он картинку у себя в кэше сохраняет. По крайней мере у меня так.
Вроде бы как-то можно ещё через IStream сохранять, сейчас посмотрю. |
Сообщ.
#7
,
|
|
|
Цитата Бим @ Взято с DelphiWorld и немного изменено: uses UrlMon; function DownloadFile(SourceFile, DestFile: string): Boolean; begin try Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0, nil) = 0; except Result := False; end; end; procedure SaveAllImagesToDir(const DirPath: string; WB: TWebBrowser); var k, p: Integer; Source, dest, ext: string; egin for k := 0 to WB.OleObject.Document.Images.Length - 1 do begin Source := WB.OleObject.Document.Images.Item(k).Src; p := LastDelimiter('.', Source); ext := UpperCase(Copy(Source, p + 1, Length(Source))); if (ext = 'GIF') or (ext = 'JPG') or (ext = 'JPEG') then begin p := LastDelimiter('/', Source); dest := DirPath + Copy(Source, p + 1, Length(Source)); DownloadFile(Source, dest); end; end; end; procedure TForm1.Button1Click(Sender: TObject); begin SaveAllImagesToDir('C:\Images\', WebBrowser1); end; Данный код сохранит все GIF и JPEG картинки из страницы, открытой в WebBrowser1, в папку C:\Images, сохраняя исходные имена файлов. Обращаю внимание на завершающий слэш в конце пути 'C:\Images\' и на то, что папка должна существовать. Все работает, но выдает ошибку если в TWebBrowser вообще ничего не загружено. Подскажите как предотвратить это ошибку или вывести сообщение что картинок не найдено. |
Сообщ.
#8
,
|
|
|
Добавьте проверку на существование Document. У меня сработало так:
if VarIsClear(WB.OleObject.Document) then begin { Объект документа не существует, делать нечего } Exit; end; |