var shareContent = cntElem; //需要截图的包裹的(原生的)DOM 对象
var width = shareContent.offsetWidth; //获取dom 宽度
var height = shareContent.offsetHeight; //获取dom 高度
var canvas = document.createElement("canvas"); //创建一个canvas节点
var scale = 2; //定义任意放大倍数 支持小数
canvas.width = width * scale; //定义canvas 宽度 * 缩放
canvas.height = height * scale; //定义canvas高度 *缩放
canvas.getContext("2d").scale(scale, scale); //获取context,设置scale
var opts = {
scale: scale, // 添加的scale 参数
canvas: canvas, //自定义 canvas
// logging: true, //日志开关,便于查看html2canvas的内部执行流程
width: width, //dom 原始宽度
height: height,
useCORS: true // 【重要】开启跨域配置
};
html2canvas(shareContent, opts).then(function(canvas) {
// H5 plus事件处理
var context = canvas.getContext('2d');
// 【重要】关闭抗锯齿
context.mozImageSmoothingEnabled = false;
context.webkitImageSmoothingEnabled = false;
context.msImageSmoothingEnabled = false;
context.imageSmoothingEnabled = false;
var dataUrl = canvas.toDataURL("image/jpeg");
var bitmap = new plus.nativeObj.Bitmap();
var result = new Date().getTime();
var filename = result + "_picture" + ".jpeg";
bitmap.loadBase64Data(dataUrl);
bitmap.save(
"_doc/" + filename, {
overwrite: true
},
function(i) {
//保存到系统相册
plus.gallery.save(
i.target,
function(d) {
//销毁Bitmap图片
bitmap.clear();
//console.log("保存图片到相册成功");
},
function() {
//console.log("保存保存失败");
}
);
},
function() {
bitmap.clear();
}
);
plus.nativeUI.closeWaiting();
var path = "file://" + plus.io.convertLocalFileSystemURL("_doc/" + filename);
shareImage(path); //传入参数调用微信分享接口
h5plus截屏并保存至相册
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 该Demo实现如下功能 从相册_照片 获取图片, 并贴在Image上 从相册_时刻 获取照片, 并贴在Image上...
- 添加权限(AndroidManifest.xml文件里) 实现截屏(Java代码) 转自Android实现截屏并保...
- 1.截屏 用方法1正常,用方法2视频黑色.当然你要确定view是不是最底层的view.区别查到再补充,先做个记录 ...