这几天 做项目中,要做一个屏幕截图时时上传服务器功能,在网站中调用百度地图,在百度地图上进行添加图层,然后再截图上传服务器。在做的过程走了一些弯路,在这里分享一下。
1.刚开始是用html2canvse做的,但是在放到项目的里面才发现,它不能截取外域图片(非本服务器里面图片或者内容)。
2.最后查了一下如果想在屏幕上随意截图,只能用插件。我最后发现牛牛截图这个插件挺好用的关键是免费的(www.ggniu.cn)。我再说说里面我用的时候遇到的问题。
(1)现在牛牛插件里面web版的只有c#的,但是我用的是php的后台,里面大同小异,但是我用的时候,当我截图生成base64图片的数据的时候,利用Ajax向后台传的时候,发现里面的base64数据是乱码的最后发现时,原来C#传递的是正常的,php数据就会乱码,原因就是它的capturewrapper.js中encodeURIComponent()函数搞的鬼,把这个函数去掉就行了,因为这个函数把传回来的数据进行了转码。
本人qq:1934075569 有关此什么问题可以问。
3.Ajax向后台传数据,当时传不过去 最后把dataType: "json" 改为了dataType: "text"就传过去了。
4.当牛牛截图,更新版本的时候,可能你的代码就不能用了,就要重新下载插件或者更换代码。