lufy's legend

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12663|回复: 4
打印 上一主题 下一主题

求助!苹果手机getDataURL方法出现问题

[复制链接]

38

主题

3

好友

500

积分

裨将军

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2016-10-25 16:09:04 |显示全部楼层 |倒序浏览
先贴代码:
  1. var draw_bmd = new LBitmapData(null,0,0,640,1040);
  2. draw_bmd.draw(work_container);
  3. var draw_bmp = new LBitmap(draw_bmd);
  4. var draw_img_data = draw_bmp.getDataURL("image/jpeg",0.7);
  5. alert(draw_img_data);
复制代码
很简单,对不对?新建一个LBitmapData对象,然后draw一个显示对象,生成一个LBitmap,再去通过getDataURL方法获取Base64图片数据,保存成图片文件。在电脑上测试没问题,安卓手机(华为p9)测试没问题,但是在苹果手机上draw以后LBitmap显示出来是正常的,但是Base64图片数据保存以后就变成一张全黑的图片了。苹果手机上alert出来的Base64数据显示如下图:
545302946157659708.jpg
79932101918018854.jpg

这个数据看起来就有问题吧?为什么getDataURL方法在苹果手机上会出问题呢?我折腾一天了还没搞清楚,求助!
回复

使用道具 举报

38

主题

3

好友

500

积分

裨将军

Rank: 3Rank: 3

沙发
发表于 2016-10-27 16:26:13 |显示全部楼层
对比了,苹果保存的数据不一样。就苹果有问题,pc和安卓没问题。另外就是在苹果手机上用canvas原生的toDataURL方法保存base64也是没问题的。
回复

使用道具 举报

38

主题

3

好友

500

积分

裨将军

Rank: 3Rank: 3

板凳
发表于 2016-10-31 19:59:18 |显示全部楼层
老大,不是每次使用getDataURL方法都有问题,以前做的项目也没问题,这次可能是处理的图片尺寸比较大(加载进来的图片大概有3000x4000像素的样子,然后截取一部分),就出这个问题了。如果是小尺寸图片,截取范围小的时候是没问题的。这次用其他方式处理了,但是这个问题确实在苹果手机上是存在的,不知道是lufy框架的问题还是我处理不当的原因?
回复

使用道具 举报

38

主题

3

好友

500

积分

裨将军

Rank: 3Rank: 3

地板
发表于 2016-11-1 15:21:01 |显示全部楼层
图片在lufy里加载进来显示是正常的,直接使用“main_canvas”的toDataURL方法获取到的base64也没有问题,只是在lufy里用getDataURL方法获取的base64有问题。
回复

使用道具 举报

38

主题

3

好友

500

积分

裨将军

Rank: 3Rank: 3

5#
发表于 2016-11-8 17:18:46 |显示全部楼层
lufy 发表于 2016-11-1 15:50
你所说的main_canvas,它的大小就是游戏初始化的大小,无论你用的图片多大,它的大小是固定的,用toDataUR ...

可能就是您说的这个问题,因为draw_bmd这个draw的那个对象work_container,加载了用户上传的照片(尺寸太大),造成后面getDataURL的问题。但是draw之后显示还是正常的,使用getDataURL生成的base64数据就有问题了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

防止垃圾广告,请填写任意字符

Archiver|lufy's legend

GMT+8, 2024-5-3 21:02 , Processed in 0.056236 second(s), 26 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部