Capturar trozos de pantalla

Capturar trozos de pantalla

Postby Andrés González » Fri Nov 30, 2012 6:38 am

Se me plantea un nuevo reto y estoy un poco perdido, a ver si me pueden indicar el camino. Tenemos instalado un samarthTV (dlna) y me han planteado la idea de poder poner imágenes de nuestros programas para que sirvan de publicidad y que todo el mundo pueda tener conocimiento de cosas de nuestros programas. Muchas de las cosas son reportes y otras cosas que he integrado de internet como por ejemplo los calendarios de google y la página web corporativa (site). Quiero que aparezca una captura de pantalla y que se guarde en una carpeta. Mirar la información del DLNA y veréis como funciona, el TV mostraría estas imágenes como si fueran diapositivas. Toda la configuración de la red y del televisor la tengo lista lo que quiero hacer es poder seleccionar dinámicamente trozos de nuestros programas para que me lo guarde directamente como imagen. Esto lo he conseguido directamente con programas externos de captura de pantalla a los que le indico el trozo y donde lo tengo que guardar. Pero mi pregunta es si esto se puede hacer desde el programa fivewin sin depender de programas externos. Me gustaría poner un boton en la barra de menu que seleccione un trozo predefinido y que ademas lo pueda mover y que lo guarde directamente. Esto es posible o es muy complicado desde FW? Creo que lo difícil debe ser crear el cuadro para luego modificarlo, puesto que según creo el poder capturar pantalla no es difícil.

Gracias
Andy
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 627
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Capturar trozos de pantalla

Postby Andrés González » Fri Nov 30, 2012 7:34 am

He visto algo de Daniel, pero me da problemas, alguna idea?

viewtopic.php?f=6&t=19403&p=137655#p137655
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 627
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Re: Capturar trozos de pantalla

Postby pgfdz » Fri Nov 30, 2012 8:03 am

Hola. A ver si te vale esto:

Code: Select all  Expand view


#define SRCCOPY 13369376

local hDC := oWnd:GetDC()
local hBmp :=SaveScreen( hDC,10, 10, 300,300 )
oWnd:ReleaseDC()
DeleteObject( hBmp)



****************************************************************************************
 function savescreen( hDC, nTop, nLeft, nBottom, nRight )
****************************************************************************************

   local hBmpMem, hOldBmp
   local hDCMem
   local nWidth, nHeight

   hDCMem  = CreateCompatibleDC( hDC )

   nWidth  := nRight - nLeft
   nHeight := nBottom - nTop

   hBmpMem := CreateCompatibleBitmap( hDC, nWidth, nHeight )
   hOldBmp := SelectObject( hDCMem, hBmpMem )
   BitBlt( hDCMem, 0, 0, nWidth, nHeight, hDC, nLeft, nTop, SRCCOPY )
   SelectObject( hDCMem, hOldBmp )
   DeleteDC( hDCMem )

return hBmpMem

****************************************************************************************
  static function RestoreScreen( hDC, hBmp, nTop, nLeft )
****************************************************************************************

DrawBitmap( hDC, hBmp, nTop, nLeft )

return nil

function savehbmptofile( hBmp, cFileName )

DibWrite( cFileName, DibFromBitmap( hBm ) )

return 0

 


Si quieres capturar partes de la ventana con título y bordes tienes que sustituir el oWnd:GetDC por GetWindowDC( oWnd:hWnd )

Un saludo
Paco García
pgfdz
 
Posts: 145
Joined: Wed Nov 03, 2010 9:16 am

Re: Capturar trozos de pantalla

Postby Andrés González » Fri Dec 07, 2012 2:46 pm

Sí esto es,voy a mirar como lo sincronizo y comento cosas.
Gracias.

PD.: Buscando he encontrado esto con proyectos dlna, creo que es un muy buen complemento para nuestros programas: http://elinux.org/DLNA_Open_Source_Projects
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 627
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 9 guests

cron