PDA

Ver la Versión Completa : Capturar la Imagen del Desktop


fide
15-09-2007, 03:04:12
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 (http://www.clubdelphi.com/foros/member.php?u=13597), allí te va.


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 (http://www.clubdelphi.com/foros/member.php?u=13597), me falto decirte que si quieres la imagen más pequeña, te mando este procedimiento.


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;



cliente.comvertir_de_bmp_a_jpg(guar_dar_direccion+'image.bmp', guar_dar_direccion+'foto_chiquita.jpg');