欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2024-01-15 20:31:34
...
现在有一个需求把网页中的一部分(用户面板,蛮复杂的)生成图片,请问用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!');
}
相关标签: php