Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Handle - > bmp   Найти похожие ветки 

 
Ozone ©   (2004-04-05 11:47) [0]

Если у меня есть HANDLE окна, то как получить его изображение?


 
Семен Сорокин ©   (2004-04-05 11:54) [1]

FindControl(Handle).PaintTo();


 
Ozone ©   (2004-04-05 12:13) [2]

Выдает "...Access violation ...".

Делаю так:


var
  hWndC: THandle;
begin
  hWndC := capCreateCaptureWindow(...);
  {...}
  FindControl(hWnd).PaintTo(MainForm.Canvas, 0, 0);
end;


В чем я не прав?


 
Семен Сорокин ©   (2004-04-05 12:23) [3]

Окно должно быть наследником TWinControl


 
Ozone ©   (2004-04-05 12:27) [4]

Сделал - все без ошибок, но на Canvas"e пустой прямоугольник...
(хотя в этом окне я четко вижу картинку)

ЗЫ: картинка с Web-камеры


 
VMcL ©   (2004-04-05 12:37) [5]

>>Ozone ©  (05.04.04 12:13) [2]

Так нельзя, окно ж не в твоей VCL-программе создано.
Попробуй как-то так:

procedure GetScrShot(const Win: HWND);
var
 Bmp: TBitmap;
 DC: HDC;
 R: TRect;
begin
 with TBitmap.Create do
 try
   DC := GetWindowDC(Win);
   try
     GetWindowRect(Win, R);
     Width := R.Right - R.Left;
     Height := R.Bottom - R.Top;
     BitBlt(Canvas.Handle, 0, 0, Width, Height,
       DC, 0, 0, SRCCOPY);
   finally
     ReleaseDC(Win, DC);
   end;
   SaveToFile("C:\_ScrShot.bmp");
 finally
   Free;
 end;
end;


 
Ozone ©   (2004-04-05 14:43) [6]

TO VMcL ©:

Спасибо - работает. А можно ли как нить в JPEG засунуть?


 
VMcL ©   (2004-04-05 15:10) [7]

>>Ozone ©  (05.04.04 14:43) [6]

Лентяй ты. Примеры в Delphi7/Help/Examples/ слабо глянуть?

procedure GetScrShot(const Win: HWND);
var
 Bmp: TBitmap;
 Jpg: TJpegImage;
 DC: HDC;
 R: TRect;
begin
 Bmp := TBitmap.Create;
 with Bmp do
 try
   DC := GetWindowDC(Win);
   try
     GetWindowRect(Win, R);
     Width := R.Right - R.Left;
     Height := R.Bottom - R.Top;
     BitBlt(Canvas.Handle, 0, 0, Width, Height,
       DC, 0, 0, SRCCOPY);
   finally
     ReleaseDC(Win, DC);
   end;
   Jpg := TJPEGImage.Create;
   try
     Jpg.Grayscale := False;
     Jpg.CompressionQuality := 80;
     Jpg.Performance := jpBestQuality;
     Jpg.ProgressiveDisplay := False;
     Jpg.PixelFormat := jf24Bit;
     Jpg.Assign(Bmp);
     Jpg.SaveToFile("C:\_ScrShot.jpg");
   finally
     Jpg.Free;
   end;
 finally
   Free;
 end;
end;


 
Ozone ©   (2004-04-05 15:19) [8]

Спасибо... с меня много пива.


 
VMcL ©   (2004-04-05 15:55) [9]

>>Ozone ©  (05.04.04 15:19) [8]

Почтовый адрес писать?
Новосибирск - Киев: никаких оплат за счет абонента! :)


 
Ozone ©   (2004-04-05 16:19) [10]

Лучше приезжай.


 
VMcL ©   (2004-04-05 17:27) [11]

>>Ozone ©  (05.04.04 16:19) [10]

>Лучше приезжай.
Наверно... в следующей жизни... когда я стану кошкой, ла-ла-ла-ла.


 
Romkin ©   (2004-04-05 17:28) [12]

Yess!!! 2VMcL Поздравляю :)))


 
McSimm ©   (2004-04-05 17:28) [13]

:)


 
VMcL ©   (2004-04-05 17:36) [14]

>>Romkin ©  (05.04.04 17:28) [12]
>>McSimm ©  (05.04.04 17:28) [13]

Угу, типа спасибо :)
И всё-таки http://delphimaster.net/view/15-1081172037/ ?



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.042 c
14-1080807209
Zaika
2004-04-01 12:13
2004.04.25
STALKER


1-1081311004
ksa2002
2004-04-07 08:10
2004.04.25
Tree View


11-1064252059
Revolter
2003-09-22 21:34
2004.04.25
VCL: Application.OnDeactivate := .. ; KOL: ???


1-1081121122
Passer-by
2004-04-05 03:25
2004.04.25
Фильтр для TFileName


7-1077117818
XandeR
2004-02-18 18:23
2004.04.25
определить температуру процессора