Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Capturar la Imagen del Desktop (https://www.clubdelphi.com/foros/showthread.php?t=48098)

fide 15-09-2007 03:04:12

Capturar la Imagen del Desktop
 
Hola amigos. Estoy intentando capturar la imagen del Desktop pero no con GetWindowDc sino con otra Api o de otra forma.

El echo es que GetClientRec me pone la Pc lenta cuando capturo imagenes asi, ademas si estoy jugando por ejemplo el Star Craft las imagenes que captura no se ven bien y se pierden cantidad de colores.

Espero ayuda y gracias desde ya amigos del club...

l30 16-09-2007 19:58:33

Bueno no se si esto te sirva fide, allí te va.

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
     procedure foto_pantalla(Image: TBitmap);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.foto_pantalla(Image: TBitmap);
var
  DC : HDC;
begin
  DC := GetDC (GetDesktopWindow);

  try
    Image.Width := GetDeviceCaps (DC, HORZRES);
    Image.Height := GetDeviceCaps (DC, VERTRES);
    BitBlt(Image.Canvas.Handle, 0, 0, Image.Width,
    Image.Height,DC, 0, 0, SRCCOPY);
  finally
    ReleaseDC (GetDesktopWindow, DC);
  end;

end;

procedure TForm1.Button1Click(Sender: TObject);
var
   Image_m: Timage;
begin
   Image_m:= TImage.Create(Self);
   foto_pantalla(Image_m.Picture.Bitmap);
   Image_m.Picture.SaveToFile('imagen.bmp');
   Image_m.Free;
end;

end.

l30 16-09-2007 20:09:02

Bueno fide, me falto decirte que si quieres la imagen más pequeña, te mando este procedimiento.

Código Delphi [-]
 procedure Tclien.comvertir_de_bmp_a_jpg(cargar_image_de,
    gueradr_image_en: AnsiString);
  var
    MyJPEG : TJPEGImage;
    MyBMP  : TBitmap;
    begin
    MyBMP := TBitmap.Create;
  with MyBMP do
       try
          {Cargamos el BMP}
          LoadFromFile(cargar_image_de);
          MyJPEG := TJPEGImage.Create;
          with MyJPEG do begin
          Assign(MyBMP);
          {Grabamos el JPG}
          SaveToFile(gueradr_image_en);
          Free;
       end;
       finally
          Free;
    end;
  end;

Código Delphi [-]
    cliente.comvertir_de_bmp_a_jpg(guar_dar_direccion+'image.bmp', guar_dar_direccion+'foto_chiquita.jpg');


La franja horaria es GMT +2. Ahora son las 08:14:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi