现在有一个需求把网页中的一部分(用户面板,蛮复杂的)生成图片,请问用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!');}