百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>html5教程> 分享一个用canvas合成海报图片的挪移端项目-
分享文章到:

分享一个用canvas合成海报图片的挪移端项目-

发布时间:08/01 来源:未知 浏览: 关键词:
?比来做了一个用canvas合成海报图片的挪移端项目,因为一点canvas根基都没有,所以去网上搜了一名先辈的demo,但是开发历程中碰到了许多题目,现将所遇题目及解决办法总结如下:?1、挪移端canvas项目适配全屏题目题目描述:因为canvas的width和height只能设定px值,不支撑rem单位,所以想在挪移设施屏幕辨论率冗杂的状况下达到canvas铺满全 比来做了一个用canvas合成海报图片的挪移端项目,因为一点canvas根基都没有,所以去网上搜了一名先辈的demo,但是开发历程中碰到了许多题目,现将所遇题目及解决办法总结如下:

1、挪移端canvas项目适配全屏题目

  题目描述:因为canvas的width和height只能设定px值,不支撑rem单位,所以想在挪移设施屏幕辨论率冗杂的状况下达到canvas铺满全屏的结果很艰难。

  解决办法:通过js猎取到手机屏幕的clientWidth值,赋给canvas,以此来达到适配全屏的结果;

var clientWidth = document.documentElement.clientWidth;
var canvasWidth = Math.floor(clientWidth);
var canvasHeight = Math.floor(clientWidth*(1334/750));
$("#main").css('width',canvasWidth+'px');
$("#main").css('height',canvasHeight+'px');

2、canvas合成的图片涌现依稀现象

  题目描述:canvas生成的图片涌现依稀题目,尤为是图片上有二维码需要辨认的,会员基本没法辨认;

  解决办法:1)可以援用hidpi-canvas.js插件解决此题目;

       2)也可以将canvas的style中的width和height值设定为你想要的大小,然后将canvas的width和height的值离别放大x倍,此处注意,当你在画布中绘制图片或者文字时,响应数值也应放大x倍。

3、合成图片时局部机型图片错乱

  题目描述:局部安卓手机在导出canvas的base64图片时,只能显示想要结果图片的一半,初步剖析是设施像素比引起的bug。

  解决办法:猎取设施像素比pr,推断机型,此处我只推断了是苹果还是安卓,临时还未涌现题目,合成图片时再将width和height值恢复到本来的大小。

//hidpi-canvas将canvas的width和height属性放大pr倍
if (navigator.userAgent.match(/苹果/i)) {
    canvas.width = width ;//恢复为原先的大小
    canvas.height = height ;
}else{
    canvas.width = width / pr;//恢复为原先的大小
    canvas.height = height / pr;
}

4、苹果手机上传图片涌现扭转题目

  题目描述:测试时发明,iPhone手机上传相片涌现扭转状况,而上传从网上保留的图片则不会涌现此题目,安卓正常。

  解决办法:此题目可运用exif.js插件解决,此插件会猎取相片拍摄时的角度等信息,主如果Orientation属性,从而进行响应操纵;

  

var file = $(this)[0].files[0];
EXIF.getData(file, function() {  
    EXIF.getAllTags(this);     
    Orientation = EXIF.getTag(this, 'Orientation');  
});

5、canvas绘制跨域图片没法导出base64图片

  题目描述:当画布中存在跨域要求来的图片时,导出base64图片失败,初步剖析应当是canvas自身的平安机制引起的。

  解决办法:此bug需要先后端配合解决,第一后端设定图片允许跨域,然后前端设定Img.crossOrigin = "Anonymous";即可。

var pageqrcodeimg = qrcodecanvas.toDataURL('image/jpg');
var qrcodeImg = new Image();
qrcodeImg.crossOrigin = "Anonymous"; 
qrcodeImg.src = pageqrcodeimg;
qrcodeImg.onload=function(){
        //绘制图片
}

6、canvas绘制图片时会涌现白屏状况

  题目描述:canvas绘制图片时偶然会涌现白屏状况,初步剖析是图片还没读取结束就施行了画图操纵。

  解决办法:给img增加onload函数,图片读取结束再施行画图操纵。

qrcodeImg.onload=function(){
        //绘制图片
}

7、微信阅读中中长按图片没法保留

  题目描述:通过canvas生成的图片在微信阅读器中长按没法保留或者辨认二维码,安卓局部图片涌现此状况,苹果正常,初步剖析是图片质量太大致使。

  解决办法:导出base64图片时紧缩图片质量。

var mycanvas = document.getElementById("main");
var image = mycanvas.toDataURL("image/jpeg",0.7);

跋文:当前碰到的题目根本就这些,后期要是碰到什么题目会延续更新。

以上就是分享一个用canvas合成海报图片的挪移端项目的细致内容,更多请关注 百分百源码网 其它相干文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有152人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板