screen, 在PHP和PhantomJS上,网站截图工具基于

分享于 

7分钟阅读

GitHub

  繁體 雙語
Image generation tool based on PHP and PhantomJS
  • 源代码名称:screen
  • 源代码网址:http://www.github.com/microweber/screen
  • screen源代码文档
  • screen源代码下载
  • Git URL:
    git://www.github.com/microweber/screen.git
    Git Clone代码到本地:
    git clone http://www.github.com/microweber/screen
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/microweber/screen
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    #Screen

    基于PHP和的网站截图工具可以使用它来获取测试或者监视服务的截图。

    安装

    通过 Composer

    $ composer require microweber/screen

    如果在任何unix系统上,都需要使 bin 可以执行 chmod +x/path/to/screen/bin/phantomjs

    目录 /path/to/screen/jobs 也必须是 writeble。

    ##Linux 要求

    • FontConfig - apt-get/yum install fontconfig
    • FreeType - apt-get/yum install freetype*

    ##Usage

    利用这个库,你可以利用PhantomJs来浏览网站。

    检查我们的演示文件或者阅读以下指令。

    创建对象,你可以在constructer上传递 url,或者以后将它的设置为

    useScreenCapture;$url='https://github.com';$screenCapture=newCapture($url);// or$screenCapture=newCapture();$screenCapture->setUrl($url);

    你还可以设置浏览器维度

    $screenCapture->setWidth(1200);$screenCapture->setHeight(800);

    你还可以设置DOM元素位置( 顶部,左)

    $screenCapture->setTop(100);$screenCapture->setLeft(100);

    这将输出所有页面,包括超出设置尺寸的内容( 比如: 所有可以滚动内容,如果只需要那些boudaries内的内容,就需要剪辑结果

    // You also need to set the width and height.$screenCapture->setClipWidth(1200);$screenCapture->setClipHeight(800);

    若要使用这里方法设置颜色,某些网页不会设置背景色设置为该体

    $screenCapture->setBackgroundColor('#ffffff');

    你还可以设置 User Agent

    $screenCapture->setUserAgentString('Some User Agent String');

    产生的图像类型

    // allowed types are 'jpg' and 'png', default is 'jpg'.$screenCapture->setImageType(ScreenImageTypesPng::FORMAT);// or$screenCapture->setImageType('png');
    • 如果格式为 jpg 且背景颜色未设置,则默认值为 #FFFFFF,如果默认背景颜色为透明,则为。

    最重要的是保存结果

    $fileLocation='/some/dir/test.'.$screen->getImageType()->getFormat();$screenCapture->save($fileLocation);// you don't need to set the file extension$fileLocation='/some/dir/test';$screenCapture->save($fileLocation); // Will automatically determine the extension typeecho$screenCapture->getImageLocation(); // -->/some/dir/test.png

    ##Injection 你自己的JS到网页

    你还可以在屏幕截图之前运行自己的JS脚本或者 Fragment。

    我们有方法 includeJs,下面是一些用法示例:

    // Including a remote file$jQueryUrl='https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js';$screenCapture->includeJs(newScreenInjectionUrl($jQUeryUrl));// Including a local file$localFilePath='path/to/my/script.js';$screenCapture->includeJs(newScreenInjectionLocalPath($localFilePath));// Using the scripts included on the library$screen->includeJs(newScreenInjectionScriptsFacebookHideCookiesPolicy());$screen->includeJs(newScreenInjectionScriptsFacebookHideSignUp());// Using a js snippet$screen->includeJs("console.log('This is supa cool!');");

    调用 save(...) 之前只使用这里方法

    ##Passing 选项到 PhantomJS

    你可以设置将传递给PhantomJS二进制文件的选项。

    $screenCapture->setOptions(['ignore-ssl-errors'=>'yes',// '--ignore-ssl-errors' => 'yes',//dashes may be omitted]);

    ##Other 配置的基本用法,你可以设置额外的配置。

    你可以更改PhantomJS二进制文件的位置。

    $screenCapture->binPath='/path/to/bin/dir/';// This will result in/path/to/bin/dir/phantomjs

    更改作业的位置

    $screenCapture->jobs->setLocation('/path/to/jobs/dir/');echo$screenCapture->jobs->getLocation(); // ->/path/to/jobs/dir/

    并设置输出基准位置

    $screenCapture->output->setLocation('/path/to/output/dir/');echo$screenCapture->output->getLocation(); // ->/path/to/output/dir/// if the output location is setted$screenCapture->save('file.jpg');// will save the file to/path/to/output/dir/file.jpg

    你还可以清除/删除所有生成的作业文件,如下所示:

    $screenCapture->jobs->clean();

    许可证

    MIT许可证( MIT ) 有关详细信息,请参阅许可证文件

    Credits

    感谢 PhantomJS ( 许可协议) 人员创建他们出色的webkit 脚本接口。

    这个工具最初创建为为 Microweber 截图。


    WEB  tool  BASE  PHP  屏幕  网站