html2canvas前端截图功能
注意该插件无法处理svg, 需要提前处理好svg,把它转成canvas就可以了。
1 |
|
使用html2canvas在前端生成图片遇到问题看下这个文章:
后台保存前端截取的图片
由于前端截取的图片只能在客户端预览和下载,如果需要得到这个图片的网络地址,需要上传图片到服务器保存。这里我使用django报错图片到静态资源目录来获得图片的网络地址。
1 | import uuid |
如果存在第三方资源,无法自由设置CORS响应头的问题处理
这里使用django转发请求并且添加CORS请求头的方式来绕过图片的跨域限制。
1 | # urls.py |
这里通过nginx也可以转发,但是nginx的proxy_pass需要主域,然后通过rewrite来修改路径。感觉灵活性不太好。代码如下:
1
2
3
4
5 # 这里提取host和request_uri就很不方便,所以都是写死的
location /proxy/ {
rewrite ^/proxy/(.*)$ /$1 break;
proxy_pass https://www.baidu.com;
}
问题
报错:
The image argument is a canvas element with a width or height of 0.
html2canvas加上属性
foreignObjectRendering: true
, 即是否在浏览器支持的情况下使用ForeignObject渲染(会导致一些问题,如图片为空)。推荐把图片什么都先转成base64, svg转成canvas等等。报错:
报错:
报错:
参考
https://blog.csdn.net/pengbin790000/article/details/79581208
https://segmentfault.com/a/1190000008320433?utm_source=tag-newest
本文链接: http://www.ionluo.cn/blog/posts/de3faaff.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!