服务端如何快速生成图片
如何快速生成图片
使用场景:比如一些项目中需要生成复杂的海报图片,因为图片上有一些随机的信息,所以不能提前生成,只能每次点击时生成海报图片,而后加载,这样导致非常慢,有好的解决办法吗?
目前使用
PHP
的GD
库生成海报图片
想了想,以下两种方式:
文档地址:https://help.aliyun.com/document_detail/44...
HTML可以考虑:html2canvas.js
教程:https://www.jianshu.com/p/abd9e9c5ba20
后端生成太慢了
调用第三方服务生成罗
我们之前也是服务端生成的,后来改成前端生成了。后端返回必要的参数。
php GD库还行吧如果是只有文字的话那就比较快点了,在贴图片的话可能会慢点,但是可以用curl优化一下就成了
public static function getHttpImg($url)
{
$info = curl_init();
curl_setopt($info, CURLOPT_RETURNTRANSFER, true);
curl_setopt($info, CURLOPT_HEADER, 0);
curl_setopt($info, CURLOPT_NOBODY, 0);
curl_setopt($info, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($info, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($info, CURLOPT_URL, $url);
$output = curl_exec($info);
curl_close($info);
return imagecreatefromstring($output);
}
巧了,我昨天开始研究真个,今天刚刚完美解决,代码分享给你,用的最新的html2canvas.min.js,不要用boot上那个,版本太老了,你去官网 (http://html2canvas.hertzen.com/) 下一个最新的,保证好用
我之前做过一个简单的奖状生成,博客:PHP 生成奖状 不过我只是填充的文字,到没有太慢
扩展库imagick,先预处理成SVG,然后直接转成PNG输出或者保存在服务器。
我们的方案是后端生成图片,返回给前端, wkhtmltopdf。另一种方式,可以使用canvas
html2canvas。