Heim  >  Fragen und Antworten  >  Hauptteil

php如何把网页中的一部分生成.jpg

现在有一个需求把网页中的一部分(用户面板,蛮复杂的)生成图片,请问用php如何实现

阿神阿神2749 Tage vor588

Antworte allen(7)Ich werde antworten

  • ringa_lee

    ringa_lee2017-04-10 13:13:20

    可以用PHP借助其他工具试试,比如这个:http://cutycapt.sourceforge.net/

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-10 13:13:20

    这个得客户端跟服务端结合起来了 截图是客户端的事情 保存是PHP的事情
    用ActiveX 还是 Java Applet 还是JavaScript 自己看着办吧
    JavaScript 的一个例子 http://html2canvas.hertzen.com/index....
    花瓣的bookmarklet 已经实现JavaScript截图的功能了

    Antwort
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 13:13:20

    可以使用canvas标签实现,但那不是图片,只是标签。

    如果实现真正意义上的图片,则需要在服务器端使用PHP的gd库或者Imagick生成图片。楼上的方案不可行,因为截图实质上客户端行为。

    Antwort
    0
  • PHPz

    PHPz2017-04-10 13:13:20

    用PantomJS吧,相当于一个没有视图的WebKit浏览器,可以在服务器端渲染网页。

    Antwort
    0
  • 黄舟

    黄舟2017-04-10 13:13:20

    1 IECapt 但是需要win服务器,具体需要google
    2 在linux下 可利用wkhtmltopdf将url 网页 存成pdf 然后 convert pdf 2 jpg
    3 imagegrabwindow 手册有demo

    Antwort
    0
  • PHP中文网

    PHP中文网2017-04-10 13:13:20

    大胆猜测楼主这个可能是在某些特定有价值操作时备份用的。

    很容易想到,使用PHP直接解析HTML代码,然后再使用常规GD生成图片,遗憾的是PHP并不能解析HTML代码,或者没有比较完善的解析HTML扩展。这样看来问题的关键在于解析HTML代码。

    个人浅见,可以考虑这样的思路:首先标记需要截图的特定的p-ID块,使用PHP想办法获取这一块的代码,方法有很多;然后把这一块内代码,一一按照CSS规则进行解析,由于是自己使用,可以仅支持对绘图有用的CSS样式,然后在图上GD绘制出来即可,凡事尽量就简。

    当然,有一个土办法可能最有效。只是某个用户面板页面,你可以先手工把这个页面截图,然后用画图工具把其中可变的地方去除,保存为一张图片作为GD将来生成图片的底板。然后稍稍改动你的程序,在用户面板生成时的一些信息,即可变部分想办法传进来写到GD图片上,写的时候只需要指定要写入信息的像素位置即可。这个方法完全路过了HTML解析,也许是比较快捷的作法。缺点是没有重用性。

    PHP普通码农,欢迎拍砖。

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-10 13:13:20

    while (1) {
        printf('Hello,world!');
    }

    Antwort
    0
  • StornierenAntwort