Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi desktop screenshot (https://www.delphipraxis.net/20331-desktop-screenshot.html)

nikon.de 16. Apr 2004 07:23


desktop screenshot
 
hi, ich möchte nen desk screen machen den aber als jpg oder gif speichern , auserdem soll nicht der screen 1024 x 70balbl sein , sondern 300x300 aber der desk soll zu sehen sein , komplett ... hat jemand ne ahnung wie man des macht ?

danke

fkerber 16. Apr 2004 07:34

Re: desktop screenshot
 
Hi!

In der CodeLib müsste ein bsp. zu Screenshots sein. Das kannst du ja als Grundlage nehmen.

Ciao fkerber

nikon.de 16. Apr 2004 07:58

Re: desktop screenshot
 
hab ich mir schon angeguggt .

fkerber 16. Apr 2004 08:01

Re: desktop screenshot
 
Hi!

Und weiter?


Ciao fkerber

nikon.de 16. Apr 2004 08:09

Re: desktop screenshot
 
kann man nen screen machen als bmp und des ist 2.5mb gross :( und hat die größe 1024 x 768 ... soll aber höchsten 200kb gross sein und die größe 300x300 haben und der desk soll komplett zu sehen sein :)

rebugger 16. Apr 2004 08:14

Re: desktop screenshot
 
Schon daran gedacht per Irfanview (http://www.irfanview.de) die Größe und das Dateiformat zu ändern ???

Luckie 16. Apr 2004 08:16

Re: desktop screenshot
 
Forensuche schon bemüht? Hier im Forum suchenscreenshot and jpg.

a.vollmer 16. Apr 2004 08:23

Re: desktop screenshot
 
Delphi-Quellcode:
procedure TForm1.ScreenToFile(aFileName: string);
var
  Bitmap: TBitmap;
  JPG : TJPEGImage;
  Canvas: TCanvas;
begin
  Canvas := TCanvas.Create;
  try
    Canvas.Handle := GetWindowDC(0);
    Application.ProcessMessages;
    try
      Bitmap := TBitmap.Create;
      Application.ProcessMessages;
      JPG := TJPEGImage.Create;
      Bitmap.PixelFormat:=pf8bit;
       Application.ProcessMessages;
      try
        Bitmap.Width := Screen.DesktopWidth;
        Bitmap.Height:= Screen.DesktopHeight;
        Bitmap.PixelFormat := pfDevice;
         Application.ProcessMessages;
        BitBlt(Bitmap.Canvas.Handle, 0, 0, Pred(Screen.DesktopWidth), Pred(   
        Screen.DesktopHeight), Canvas.Handle, Screen.DesktopLeft,
        Screen.DesktopTop, Bitmap.Canvas.CopyMode);
        Application.ProcessMessages;
//Kompression
        JPG.CompressionQuality:=50;
        JPG.Assign(Bitmap);
        Application.ProcessMessages;
        if fileexists(aFileName) then
          deletefile(aFileName);
        JPG.SaveToFile(aFileName);
      finally
//Größe
       resizepictur(aFileName,300,300);
        Bitmap.Free;
        JPG.Free;  
      end;
    finally  
      ReleaseDC(0, Canvas.Handle);
      Application.ProcessMessages;
    end;  
  finally  
    Canvas.Free;
  end;
end;

Gruß

Alex

Akut-Programming 16. Apr 2004 08:42

Re: desktop screenshot
 
Zitat:

Zitat von nikon.de
kann man nen screen machen als bmp und des ist 2.5mb gross :(

Das Problem hatte ich in meinem Projekt auch. Hatte aber bei Torry ne Komponente gefunden, die bmp -> jpg komprimiert. (heißt glaube sogar "bmptojpg") Damit klappts ganz gut!

Gruß,

Luckie 16. Apr 2004 08:50

Re: desktop screenshot
 
Dazu braucht man keine Komponente. Kann man alles wunderbar selber machen wie obiger Code und die Suche in der Delphipraxis zeigen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:12 Uhr.
Seite 1 von 2  1 2      

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