Entwickler-Ecke

Sonstiges (Delphi) - BMP erstellen


Asus - So 30.12.07 16:51
Titel: BMP erstellen
Hallo,
und zwar möchte ich das das Programm wenn ich auf Start drück ein Bild(BMP) von den Inhalt von TWebBrowser macht.
So sieht das aus:
user defined image
Er soll den kompletten TWebBrowser ein bild machen(auch das was man erst sieht wenn man Scrollt). Nicht die Buttons etc
Geht das irendwie zu machen?

Meine zweite idee war das ganze über nen tray Icon zu steuern, und nur das TWebBrowser anzeigt ohne Menü, bloß wenn man dann an einen anderen aktiven programm arbeitet mach das ja dann davon nen bild

MFG Martin


rizla - Mi 16.01.08 10:00

tach schön!
wo ist denn da ein TWebBrowser? Seh ja gar nix :gruebel:
Willst du quasi den screen einer site aus netz dem grabben und den dann in deinem tool darstellen?
is nur ne verständnisfrage!

:r:


JayEff - Mi 16.01.08 10:09
Titel: Re: BMP erstellen
user profile iconAsus hat folgendes geschrieben:
Er soll den kompletten TWebBrowser ein bild machen(auch das was man erst sieht wenn man Scrollt).
Das dürfte nicht einfach werden, wie willst du von etwas ein Bild machen, das garnicht erst gezeichnet wird? :| Es gibt da im prinzip 2 Möglichkeiten:
1. Schreib dir einen HTML parser der direkt in eine Bilddatei schreibt ( :lol: :rofl: )
2. Zeige den Webbrowser komplett an und mach ein Bild davon Suche in: Delphi-Forum, Delphi-Library SCREENSHOT MACHEN - Dabei wirst du immernoch Bereiche haben, die nicht im Bild sind, da Webseiten i.A. größer sind als eine Bildschirmhöhe.
Was die Buttons betrifft...: Mach ein Bild vom ganzen Fenster und kopiere nur den Teil ohne Buttons in eine Variable ... Ich glaube, die Funktion heißt aTCanvas.CopyRect()


Lannes - Mi 16.01.08 12:24

Hallo,

hier die dritte :wink:

Ein komplettes Screenshot von einem Dokument kannst Du mit dem Tipp erstellen:
http://www.swissdelphicenter.ch: ...ein Webbrowser Dokument als Bitmap speichern? [http://www.swissdelphicenter.ch/de/showcode.php?id=1983]

Es sind aber noch ein paar Anpassungen vorzunehmen.
Die Größe wird in dem Tipp mit OleObject.Document.ParentWindow.Screen.Height und ...Screen.Widthfestgelegt. Um das komlette Dokument zu erhalten hilft OleObject.Document.Body.ScrollWidth.
Sollen die Scrollbars nicht im Screenshot enthalten sein, kann man mit OleObject.Document.Body.Style.OverflowX := 'hidden'und ...OverflowY := 'hidden'die Scrollbars verbergen. Zum Anzeigen wieder auf 'auto' setzen.

Also in der Reihenfolge:
- Scrollbar verbergen
- Maße ermitteln
- Screenshot erzeugen
- Scrollbars wieder anzeigen