Entwickler-Ecke
Internet / Netzwerk - Image vom WebBrowser rauskopieren
F.Art - Do 06.02.03 13:25
Titel: Image vom WebBrowser rauskopieren
Wie kann man ein Bild aus dem WebBrowser woanders hin kopieren?
DaFox - Do 20.02.03 20:12
Titel: Re: Image vom WebBrowser rauskopieren
Hi.
Was verstehst Du unter hinkopieren? Entweder Du musst dann mit dem IE Cache arbeiten oder mit der Zwischenablage. Beides finde ich nicht gerade schön.
Deshalb nun zwei Möglichkeiten, die ich verwenden würde (genau kenne ich ja Deine Absichten nicht):
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| procedure TForm1.Button1Click(Sender: TObject); var i: Integer; begin Memo1.Lines.Clear; for i := 1 to Webbrowser1.OleObject.Document.Images.Length - 1 do begin Memo1.Lines.Add(Webbrowser1.OleObject.Document.Images.Item(i).Src); end; end;
procedure TForm1.Button2Click(Sender: TObject); var i : Integer; Doc: IHTMLDocument2; Elements: IHTMLElementCollection; Elem : IHTMLElement; begin Memo1.Lines.Clear; Doc := Webbrowser1.Document as IHTMLDocument2; Elements := (Doc.Images as IHTMLElementCollection) as IHTMLElementCollection; for i := 0 to Elements.Length-1 do begin Elem := Elements.Item(i, varEmpty) as IHTMLElement; Memo1.Lines.Add(Elem.outerHTML); end; end; |
Gruß,
Markus
F.Art - Do 20.02.03 21:09
OK ich werde mir das mal genauer an schauen.
Ich will eine HTML Datei abrufen und es wird imer ein anderes Bild angzeicht und das will ich in ein Bild oder Buton kopieren das mans im Projekt sieht. da der webbrowser nicht sichtbar ist.
F.Art - Fr 21.02.03 01:46
Ich schnall das noch nicht.
Ich möchte zB die Seite
http://www.delphi-forum.de/index.php
laden und slice-04.gif als Image laden.
Gibt es nicht ne möglichkeit das Bild direkt anzusprechen.
Bild.Picture:=WebBrowser??????.slice-04.gif
Anonymous - Fr 21.02.03 02:22
Wenn du willst, dann kannst du das Bild direkt runterladen. Vergiss also den Begriff "Bild" und frage wie du eine Datei aus dem Internet runterladen kannst.
F.Art - Fr 21.02.03 03:25
Das mit dem direkt runterladen würde nicht ganz klappen.
Es werden immer andere Bilder erscheinen.
Deswegen muss ich das per HTML auslesen.
Ich rufe dir HTML Seite auf und muss daher das Bild laden weil da der Name immer gleich bleibt.
Wenn man in der HTML ein Bild rein setzt wird immer für das Bild ein Objectname benutzt und der wird nicht geändert.
Ich hoffe ihr wisst was ich meine.
Ich nehme mal ein HTML Button als beispiel
Quelltext
1:
| <input type="submit" value="OK"> |
submit bleibt immer gleich aber OK ändert sich immer.
F.Art - Mi 04.06.03 22:56
Ich könnte noch etwas mehr Hilfe gebrauchen.
Ich möchte ein Bild was per WebBrowser geladen wird aus dem Cache in ein Image von Delphi kopieren.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| WebBrowser.Navigate('http://www.fategate.de.vu'); repeat Application.ProcessMessages; Sleep(0); until WebBrowser.ReadyState = READYSTATE_COMPLETE; Document:= WebBrowser.Document; |
Der HTML Quelltext des Bildes:
Quelltext
1:
| <IMG src="Links/FateGate.gif" width="691" height="122" border="0"> |
Wie realisiere ich das?
toms - Do 05.06.03 08:34
Hi,
Habe mal eine Funktion geschrieben, welcher man eine URL übergeben
kann und dann den Pfad zur lokale Datei (im Cache) erhält.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50:
| uses WinInet;
function GetCachedFileFromURL(strUL: string; var strLocalFile: string): boolean; var lpEntryInfo: PInternetCacheEntryInfo; hCacheDir: LongWord; dwEntrySize: LongWord; dwLastError: LongWord; begin Result := False; dwEntrySize := 0; FindFirstUrlCacheEntry(nil, TInternetCacheEntryInfo(nil^), dwEntrySize); GetMem(lpEntryInfo, dwEntrySize); hCacheDir := FindFirstUrlCacheEntry(nil, lpEntryInfo^, dwEntrySize); if (hCacheDir <> 0) and (strUL = lpEntryInfo^.lpszSourceUrlName) then begin strLocalFile := lpEntryInfo^.lpszLocalFileName; Result := True; end; FreeMem(lpEntryInfo); if Result = False then repeat dwEntrySize := 0; FindNextUrlCacheEntry(hCacheDir, TInternetCacheEntryInfo(nil^), dwEntrySize); dwLastError := GetLastError(); if (GetLastError = ERROR_INSUFFICIENT_BUFFER) then begin GetMem(lpEntryInfo, dwEntrySize); if (FindNextUrlCacheEntry(hCacheDir, lpEntryInfo^, dwEntrySize)) then begin if strUL = lpEntryInfo^.lpszSourceUrlName then begin strLocalFile := lpEntryInfo^.lpszLocalFileName; Result := True; Break; end; end; FreeMem(lpEntryInfo); end; until (dwLastError = ERROR_NO_MORE_ITEMS); end;
procedure TForm1.Button2Click(Sender: TObject); var strLocalFile: string; begin if GetCachedFileFromURL('http://www.abc.com/xyz.gif', strLocalFile) then ShowMessage(strLocalFile); end; |
F.Art - Do 05.06.03 10:39
OK das klappt schonmal ganz gut.
Delphi-Quelltext
1:
| Image1.Picture.LoadFromFile(strLocalFile); |
Wie kann ich dann das Bild im Projekt anzeigen lassen?
So wie oben geht es nicht.
Gibt es noch ne Kombonente womit man alle Bild Formate anzeigen lassen kann wie anigif und so?
F.Art - Di 10.06.03 11:34
Er zeigt zwar das JPG an wo es hingespeichert wurde aber es wird nicht komplett gespeichert. Man kann das Bild nicht öffnen. Wer kann mir weiter helfen?
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!