ios android 截屏 分享,iOS微信截屏分享

本文主要探讨在iOS应用中遇到的微信分享图片时,如何处理缩略图过大导致分享失败以及确保分享图片清晰度的问题。通过调整图片压缩比例,确保缩略图不超过微信限制的同时保持分享的图片质量。代码示例展示了如何生成缩略图和高清大图,并使用微信SDK进行分享。
摘要由CSDN通过智能技术生成

1、需求:將截屏后的圖片分享至微信好友或朋友圈。

2、問題:1、圖片縮略圖太大無法分享;2、分享的圖片不夠清晰。

3、描述:微信分享是需要設置兩張圖:需分享圖的縮略圖(大小有限制)和需分享的圖(要求高清,分享個模糊圖,體驗差就沒意義!)。

4、注意:按照微信要求縮略圖大小不超過32k,但實質上在一定范圍內,超過32k,也是可以分享出去的;

縮略圖太大將導致分享失敗。

上代碼:

-(void)didClickShareBtn:(computeScoreView *)computeScoreView{

//1.像微信注冊

[WXApi registerApp:kWXAppId];

//2.縮略圖

WXMediaMessage * massage = [WXMediaMessage message];

[massage setThumbImage:[self thumbScaleImage]];

//3.高清大圖

WXImageObject * iamgeOb = [WXImageObject object];

iamgeOb.imageData = UIImageJPEGRepresentation([self mediaImageObj], 1.0);

massage.mediaObject = iamgeOb;

//4.發送請求

SendMessageToWXReq * req = [[SendMessageToWXReq alloc]init];

req.bText = NO;

req.message = massage;

req.scene = WXSceneSession;

[WXApi sendReq:req];

}

/**縮略圖**/

-(UIImage *)thumbScaleImage{

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 1.0);

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

float scaleNum =1.0;

NSData * data =UIImageJPEGRepresentation(img, scaleNum);

float imageDataLength = data.length/1024.0;

/**按照微信要求縮略圖大小不超過32k,但實質上在一定范圍內,超過32k,也是可以分享出去的**/

while (imageDataLength>32.0) {

scaleNum = scaleNum - 0.1;

data =UIImageJPEGRepresentation(img, scaleNum);

imageDataLength = data.length/1024.0;

}

UIImage * finalImg = [UIImage imageWithData:data];

return finalImg;

}

/** 高清大圖**/

-(UIImage *)mediaImageObj

{

UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, YES, 0.0);

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage * img = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

NSData * data =UIImageJPEGRepresentation(img, 1.0);

return img;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值