screenshot verkleinern klappt nicht

Für Fragen von Einsteigern und Programmieranfängern...

screenshot verkleinern klappt nicht

Beitragvon malabarista » 1. Feb 2018, 12:00 screenshot verkleinern klappt nicht

Ich wollte einen screenshot machen.
Die normale Größe (screenshot=Bildschirmgröße) funktioniert.
Aber ich wollte ihn auf die Hälfte verkleinern und das klappt nicht: das Bild ist nur schwarz.
Code: Alles auswählen
  bild:= TPortableNetworkGraphic.Create;
  w:=screen.Width;
  h:=screen.Height;
  wn:=w div 2;
  hn:=h div 2;
  bild.setsize(wn,hn);
  ScreenDC := GetDC(0);
  StretchBlt(bild.Canvas.Handle, 0, 0, wn, hn, ScreenDC, 0, 0, w, h,SrcCopy);
  ReleaseDC(0,ScreenDC);
  bild.SaveToFile('scrshot2.png');
  bild.free;                                   
 

Was ist mein Fehler ?
malabarista
 
Beiträge: 287
Registriert: 11. Jun 2016, 11:16
Wohnort: Konstanz
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0 | 
CPU-Target: 64Bit
Nach oben

Beitragvon Michl » 1. Feb 2018, 13:14 Re: screenshot verkleinern klappt nicht

Ungetestet: Das Canvas wird On Demand, also auf Anforderung erstellt. Oft klappt der Erstzugriff nicht, da es nicht fertig erstellt wurde.

Probier mal sowas:
Code: Alles auswählen
  bild:= TPortableNetworkGraphic.Create;
  w:=screen.Width;
  h:=screen.Height;
  wn:=w div 2;
  hn:=h div 2;
  bild.setsize(wn,hn);
  bild.Canvas.Clear; // <-- sowas oder Fillrect etc.
  ScreenDC := GetDC(0);
  StretchBlt(bild.Canvas.Handle, 0, 0, wn, hn, ScreenDC, 0, 0, w, h,SrcCopy);
  ReleaseDC(0,ScreenDC);
  bild.SaveToFile('scrshot2.png');
  bild.free;
Code: Alles auswählen
type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 
Michl
 
Beiträge: 2260
Registriert: 19. Jun 2012, 11:54
OS, Lazarus, FPC: Win7 Laz 1.7 Trunk FPC 3.1.1 Trunk | 
CPU-Target: 32Bit/64bit
Nach oben

Beitragvon malabarista » 1. Feb 2018, 13:20 Re: screenshot verkleinern klappt nicht

Ja, dann klappt es.
Dankeschön.
malabarista
 
Beiträge: 287
Registriert: 11. Jun 2016, 11:16
Wohnort: Konstanz
OS, Lazarus, FPC: Linux Mint 18.1 L1.6.2-1 FPC 3.0.0 | 
CPU-Target: 64Bit
Nach oben

• Themenende •

Zurück zu Einsteigerfragen



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried