Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Screenshot in JPG ?!? (https://www.delphipraxis.net/10560-screenshot-jpg.html)

TheMiller 21. Okt 2003 09:37


Screenshot in JPG ?!?
 
Kann man diesen Code so umschreiben, dass er eine JPG vom Screen erstellt. Habe jetzt eine BMP-Datei die bei 1024x768 Pixeln exakt 3MB groß ist... Hier der Code (ich denke aus der DP-CL)...

Delphi-Quellcode:
procedure ScreenToFile(aFileName: string);
var
  Bitmap: TBitmap;
  Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    try
      Bitmap := TBitmap.Create;
      try
        Bitmap.Width := Screen.DesktopWidth;
        Bitmap.Height:= Screen.DesktopHeight;
        Bitmap.PixelFormat := pfDevice;
        BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred( 
            Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
            Screen.DesktopTop, Bitmap.Canvas.CopyMode);
        Bitmap.SaveToFile(aFileName);
      finally
        Bitmap.Free;
      end;
    finally
      ReleaseDC(0, Canvas.Handle);
    end;
  finally
    Canvas.Free;
  end;
end;

Alexander 21. Okt 2003 09:45

Re: Screenshot in JPG ?!?
 
Kuck dir mal das hier an:
http://www.swissdelphicenter.ch/de/showcode.php?id=874

Alexander 21. Okt 2003 09:51

Re: Screenshot in JPG ?!?
 
Mal eine (sehr) einfache Möglichkeit:
Delphi-Quellcode:
procedure ScreenToFile(aFileName: string);
var
  Bitmap: TBitmap;
  JPG : TJPEGImage;
  Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    try
      Bitmap := TBitmap.Create;
      JPG := TJPEGImage.Create;
      try
        Bitmap.Width := Screen.DesktopWidth;
        Bitmap.Height:= Screen.DesktopHeight;
        Bitmap.PixelFormat := pfDevice;

        BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(
            Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
            Screen.DesktopTop, Bitmap.Canvas.CopyMode);

        JPG.Assign(Bitmap);
        JPG.SaveToFile(aFileName);
      finally
        Bitmap.Free;
        JPG.Free;
      end;
    finally
      ReleaseDC(0, Canvas.Handle);
    end;
  finally
    Canvas.Free;
  end;
end;
(nicht getestet...)

TheMiller 21. Okt 2003 10:08

Re: Screenshot in JPG ?!?
 
hey vielen dank euch zweien... funktioniert einwandtfrei und weis sogar, warum ;-)

Alexander 21. Okt 2003 10:18

Re: Screenshot in JPG ?!?
 
Eigentlich war ich es nur :mrgreen:

ims 21. Okt 2003 10:19

Re: Screenshot in JPG ?!?
 
Zitat:

...euch zweien...
:lol: :lol:

TheMiller 23. Okt 2003 00:28

Re: Screenshot in JPG ?!?
 
Naja, einmal für den code und einmal für die erklären (den Link)... naja, egal...Danke trotzdem...

Aike 23. Nov 2004 21:30

Re: Screenshot in JPG ?!?
 
Undefinierter Bezeichner: 'TJPGImage'
Lösung:

Delphi-Quellcode:
uses jpeg;


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz