如何使用PHP截取当前窗口的截图?

时间:2015-07-20 05:23:21

标签: javascript php jquery

我正在尝试使用PHP Nightrain准备桌面应用程序。 我想每隔10秒拍一次开窗的屏幕截图。我尝试使用html2canvas,但它正在拍摄应用程序打开页面的屏幕截图。 如果我打开微软的话并在其中工作那段时间我想要使用PHP的屏幕截图。 是否可以使用PHP? 还有一件事我想使用与操作系统兼容的PHP来制作桌面应用程序。

2 个答案:

答案 0 :(得分:0)

单靠php无法做到这一点。您将需要javascript来截取屏幕截图,将其转换为字符串并通过ajax将其发送到php脚本,然后保存内容。

为此,您可以使用此库http://html2canvas.hertzen.com/。现在魔术发生在接下来的几行代码中:

// an example html page
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
    <script type="text/javascript" src="./javascripts/html2canvas.js"></script>
    <script type="text/javascript">
        $(document).ready(function(){
            $('#screenshot').on('click', function(e){
                e.preventDefault();
                html2canvas($('body'), {
                    onrendered: function(canvas){
                        var imgString = canvas.toDataURL();
                        window.open(imgString);
                        $.ajax({
                            url: '',
                            type: 'POST',
                            data: {
                                file: imgString
                            },
                            success: function(response){
                                //alert('Everything works fine.');
                            },
                            error: function(response){
                                //alert('Server response error.');
                            }
                        });
                    }
                });
            });
        });
    </script>
</head>
<body>

至于IE 7&amp; 8支持 - 谷歌(和其他大型网站)声称最新支持最多1个版本。所以,如果当前版本是10,那么它们只支持9和10.我相信这是一个很好的做法,我也和我的客户一起使用它。 IE&lt;如果您正在开发高级网页,那么...正在努力解决这个问题。如果您的客户仍然坚持使用IE 7&amp; 8支持,您可能需要结帐 Modernizr html5shiv ,这可能会帮助您将html5支持带到IE。

答案 1 :(得分:0)

只能在服务器上运行,检查一下:

<?php
// capture the screen
$img = imagegrabscreen();
imagepng($img, 'screenshot.png');
?>

<?php
// Capture the browser window
$Browser = new COM('InternetExplorer.Application');
$Browserhandle = $Browser->HWND;
$Browser->Visible = true;
$Browser->Fullscreen = true;
$Browser->Navigate('http://www.stackoverflow.com');

while($Browser->Busy){
  com_message_pump(4000);
}

$img = imagegrabwindow($Browserhandle, 0);
$Browser->Quit();
imagepng($img, 'screenshot.png');
?>

搜索对于快速回答非常有用;)

<强> Website screenshots using PHP