Capturas de pantalla automáticas con PHP

En muchas aplicaciones puede ser útil realizar capturas de pantalla de forma automática. PHP permite capturar de forma sencilla toda la pantalla de Windows o el contenido de alguna ventana.

Se acaba de publicar un artículo en el que se explica como realizar capturas de pantalla en Windows utilizando solo PHP. El código necesario para capturar una página web cargada en Internet Explorer es muy sencillo:


<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://www.url-que-se-captura.com");

/ Esperar a que IE cargue la página entera /
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "nombre-captura.png");
?>


Ver otros ejemplos en el artículo original.

El único inconveniente es que el código solo funciona con la extensión php_gd2.dll correspondiente a la versión 5.2.2 de PHP. Esta versión está a punto de salir, pero si no puedes esperar, el post original también tiene un enlace para descargarte esa DLL específica.

Fuente: Screen capture with PHP and GD

Comentarios

  1. Hola, este articulo me resulta interesante, e incluso lo he intentado probar para mi web, pero me da error en la linea 2, por favor ¿que tengo que hacer? esque lo necesito para mi web.

    www.webinternauta.com

    Carlos el 22 de junio de 2007, 12:04:00

  2. Hola Carlos,

    En los comentarios del artículo original se comentan varios problemas y posibles soluciones.

    También se plantean dudas sobre cómo hacerlo con otro navegador, por ejemplo con Firefox.

    Respecto a los requisitos, además de necesitar obviamente Windows, se necesita PHP 5.2.2 o posterior (por la versión de la librería GD).

    Para usar los controles COM en Windows no hay que instalar nada especial, ni habilitar ninguna extensión, ya que forman parte del núcleo de PHP (http://es.php.net/com).

    sf el 22 de junio de 2007, 15:01:00

  3. Hola de nuevo Carlos,

    A mi el código anterior me funciona bien cuando lo lanzo desde la línea de comandos (> php nombreArchivo.php).

    Quizás lo estás intentando ejecutar desde el navegador y entonces no se te abre el IE.

    sf el 22 de junio de 2007, 15:12:00

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

18 de abril de 2007

Etiquetas

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.