>백엔드 개발 >PHP 튜토리얼 >php如何把网页中的一部分生成.jpg

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

WBOY
WBOY원래의
2016-06-06 20:52:05923검색

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

回复内容:

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

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

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

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

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

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

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

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

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

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

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

PHP普通码农,欢迎拍砖。

while (1) {
    printf('Hello,world!');
}
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.