AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Screenshots schnell erstellen???
Thema durchsuchen
Ansicht
Themen-Optionen

Screenshots schnell erstellen???

Ein Thema von romber · begonnen am 12. Sep 2008 · letzter Beitrag vom 15. Sep 2008
Antwort Antwort
Seite 3 von 4     123 4      
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#21

Re: Screenshots schnell erstellen???

  Alt 13. Sep 2008, 14:25
Moin, Moin.
Mal abgesehen von der Geschwindigkeit:
Liefert BitBlt() bei Verwendung des HDC unter VISTA und aktiviertem AeroGlass überhaupt ein korrektes Bild? Habe selbst auch das Problem, kann es aber nicht selbst testen, da mir zum Programmieren kein VISTA-System zur Verfügung steht (auf einer VM konnte ich den Aero-Effekt nicht aktivieren, da die Graphikemulation der VM offenbar nicht schnell genug ist)
Ralph
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#22

Re: Screenshots schnell erstellen???

  Alt 13. Sep 2008, 14:32
Zitat von taaktaak:
Moin, Moin.
Mal abgesehen von der Geschwindigkeit:
Liefert BitBlt() bei Verwendung des HDC unter VISTA und aktiviertem AeroGlass überhaupt ein korrektes Bild?
Das Bild entspricht 1 zu 1 dem, was ich auf dem Bildschirm sehe.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#23

Re: Screenshots schnell erstellen???

  Alt 13. Sep 2008, 15:13
Ich kann acuh nicht bestätigen, dass Screenshots unter Vosta langsamer sind als unter XP.
Und Dank des neuen Window-Managers sind auf den Screenshots auch halbtransparente und Direct3D-fenster zu sehen.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.990 Beiträge
 
Delphi 7 Professional
 
#24

Re: Screenshots schnell erstellen???

  Alt 13. Sep 2008, 16:19
Danke für die Info, dann wird der Fehler in MEINEM Programm wohl woanders liegen.
Ralph
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#25

Re: Screenshots schnell erstellen???

  Alt 14. Sep 2008, 18:05
Hat jemand Ideen, warum das System während der Screenshot-Erstellung friert und was dagegen zu unternehmen ist?
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#26

Re: Screenshots schnell erstellen???

  Alt 14. Sep 2008, 18:37
Zitat von romber:
Hat jemand Ideen, warum das System während der Screenshot-Erstellung friert und was dagegen zu unternehmen ist?
Hallo, könntest du noch weitere Infos liefern, wie du den Screenshot erstellst und ob es bei einem einzelnen Screenshot einfriert oder wenn du mehrere nacheinander machst?
Thomas
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#27

Re: Screenshots schnell erstellen???

  Alt 14. Sep 2008, 19:02
Für die Erstellung der Screenshot benutze ich die Funktion, die jfheins vorgeschlagen hat.

Delphi-Quellcode:
var
  HDdc: HDC;
  Bild: TBitmap;
  CopyWidth: integer;
  CopyHeight: integer;
begin
  HDdc := GetDC(0);
  CopyWidth := Screen.Width;
  CopyHeight := Screen.Height;

  Bild := TBitmap.Create;
  Bild.PixelFormat := pf24bit;
  Bild.SetSize(CopyWidth, CopyHeight);

  BitBlt(Bild.Canvas.Handle, 0, 0, CopyWidth, CopyHeight, HDdc, 0, 0, SRCCOPY);

  ReleaseDC(0, HDdc);
  Image1.Picture.Bitmap := Bild;
  Bild.Free;
Es friert auch bei dem einzelchen Screenshot ein, nur man merkt es kaum, weils zu schnell passiert. Aber wenn ich dann mehrere nacheinander erstelle, z.B. mit einem Timer und 500ms Interval, dann merkt man sehr gut, dass das System "stottert".
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#28

Re: Screenshots schnell erstellen???

  Alt 14. Sep 2008, 19:13
Nebeinbei ein kleiner Optimierungsvorschlag:

Das Bitmap einmal erstellen und am Schluss frei geben.
Thomas
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#29

Re: Screenshots schnell erstellen???

  Alt 14. Sep 2008, 20:25
Danke für den Vorschlag! Wollte ich sowieso machen. Doch im vesentlichen hat sich nichts geändert.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#30

Re: Screenshots schnell erstellen???

  Alt 14. Sep 2008, 20:28
Ich kann mir zwar nicht vorstellen, dass das viel zeit kostet, aber ggf. würde es auch Sinn machen, nur einmal das Handle zu ermitteln und dann zwischenzuspeichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz