服务端如何快速生成图片

如何快速生成图片

使用场景:比如一些项目中需要生成复杂的海报图片,因为图片上有一些随机的信息,所以不能提前生成,只能每次点击时生成海报图片,而后加载,这样导致非常慢,有好的解决办法吗?

目前使用PHPGD库生成海报图片

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 9

想了想,以下两种方式:

  1. OSS的水印

文档地址:https://help.aliyun.com/document_detail/44...

  1. 后端接口生成参数,前端生成。

HTML可以考虑:html2canvas.js

教程:https://www.jianshu.com/p/abd9e9c5ba20

1周前 评论

后端生成太慢了

1周前 评论
wsAdmin (楼主) 1周前

调用第三方服务生成罗

1周前 评论
wsAdmin (楼主) 1周前
Epona

我们之前也是服务端生成的,后来改成前端生成了。后端返回必要的参数。

1周前 评论
wsAdmin (楼主) 1周前
Epona (作者) 1周前
wsAdmin (楼主) 1周前
Epona (作者) 1周前
wsAdmin (楼主) 1周前

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);
}

1周前 评论
123wild (作者) 1周前
wsAdmin (楼主) 1周前
123wild (作者) 1周前

巧了,我昨天开始研究真个,今天刚刚完美解决,代码分享给你,用的最新的html2canvas.min.js,不要用boot上那个,版本太老了,你去官网 (http://html2canvas.hertzen.com/) 下一个最新的,保证好用

function createShareImg() {
                new html2canvas(document.getElementById('domToImgArea'), {
                  backgroundColor: "#fff",
                  dpi: window.devicePixelRatio * 2,
                  scale: 3,
                  allowTaint: true,
                  useCORS: true
                }).then(canvas => {
                    var image = new Image();
                    image.crossOrigin = "Anonymous";
                    image.src = canvas.toDataURL("image/png");
                    $("#shareImg").attr("src",image.src);
                });
        };
1周前 评论
wongvio (作者) 1周前
wsAdmin (楼主) 1周前
wongvio (作者) 1周前

我之前做过一个简单的奖状生成,博客:PHP 生成奖状 不过我只是填充的文字,到没有太慢

1周前 评论

扩展库imagick,先预处理成SVG,然后直接转成PNG输出或者保存在服务器。

6天前 评论
青风百里

我们的方案是后端生成图片,返回给前端, wkhtmltopdf。另一种方式,可以使用canvas
html2canvas

5天前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!