微信分享大图遇到的问题(Android)

 

起因:

要做一个微信图片分享的功能,但是对于大图会如下问题:

当时没有仔细查看错误日志,单纯的以为是图片太大的问题。

分享图片代码:

复制代码
 1 public void WXsharePic(String transaction, final boolean isSession, Bitmap bitmap) {  2     //初始化WXImageObject和WXMediaMessage对象 3     WXImageObject imageObject = new WXImageObject(bitmap);  4     WXMediaMessage msg = new WXMediaMessage();  5     msg.mediaObject = imageObject;  6     //设置缩略图 7     Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmap, 200, 200, true);  8     bitmap.recycle();  9     msg.thumbData = getBitmapByte(scaledBitmap); 10     //构造一个Req11     SendMessageToWX.Req req = new SendMessageToWX.Req(); 12     req.transaction = transaction + Long.toString(System.currentTimeMillis()); 13     req.message = msg; 14     //表示发送给朋友圈  WXSceneTimeline  表示发送给朋友  WXSceneSession15     req.scene = isSession ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline; 16     //调用api接口发送数据到微信17     api.sendReq(req); 18 }
复制代码

解决过程:

想法一:

查看微信的文档,发现如下信息:

初步判定是略缩图过大导致的,准备对略缩图进一步压缩。

但是在调试过程中发现略缩图并没有超过32K,于是这种想法不正确

想法二:

既然不是略缩图过大,那大概率就是原图过大了。然而微信官方文档上也没有说明原图大小限制,所以也不知道是否是这个原因。

于是准备测试一下是否是这个原因,对原图进一步压缩。

复制代码
 1 public static byte[] bitmap2Bytes(Bitmap bitmap, int maxkb) {  2     ByteArrayOutputStream output = new ByteArrayOutputStream();  3     bitmap.compress(Bitmap.CompressFormat.PNG, 100, output);  4     int options = 100;  5     while
                    
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信