在写微信分享项目时,发现微信设置缩略图:

我们的图片是从阿里云那里获取的网络图片,需要把网络图片转化为UIImage,下面就是方法:

+(UIImage *) getImageFromURL:(NSString *)fileURL{UIImage * result;NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];result = [UIImage imageWithData:data];return result;
}

微信设置的缩略图要小于32KB,否则无法调起微信,而微信也没有返回错误信息,只是[WXApi sendReq:req]=NO,所以我们要压缩小于32Kb

压缩方法为:

#pragma mark - 压缩图片
+ (UIImage *)compressImage:(UIImage *)image toByte:(NSUInteger)maxLength {// Compress by qualityCGFloat compression = 1;NSData *data = UIImageJPEGRepresentation(image, compression);if (data.length < maxLength) return image;CGFloat max = 1;CGFloat min = 0;for (int i = 0; i < 6; ++i) {compression = (max + min) / 2;data = UIImageJPEGRepresentation(image, compression);if (data.length < maxLength * 0.9) {min = compression;} else if (data.length > maxLength) {max = compression;} else {break;}}UIImage *resultImage = [UIImage imageWithData:data];if (data.length < maxLength) return resultImage;// Compress by sizeNSUInteger lastDataLength = 0;while (data.length > maxLength && data.length != lastDataLength) {lastDataLength = data.length;CGFloat ratio = (CGFloat)maxLength / data.length;CGSize size = CGSizeMake((NSUInteger)(resultImage.size.width * sqrtf(ratio)),(NSUInteger)(resultImage.size.height * sqrtf(ratio))); // Use NSUInteger to prevent white blankUIGraphicsBeginImageContext(size);[resultImage drawInRect:CGRectMake(0, 0, size.width, size.height)];resultImage = UIGraphicsGetImageFromCurrentImageContext();UIGraphicsEndImageContext();data = UIImageJPEGRepresentation(resultImage, compression);}return resultImage;
}
调用方法为:
   //缩略图要小于32KB,否则无法调起微信,32KB = 32*1024B=32678UIImage *pressImage = [IHUtility compressImage:picture toByte:32765];

iOS 网络图片转为UIImage 和微信分享时缩略图片的压缩相关推荐

  1. (拿走不谢)H5微信分享时,在苹果手机分享一直不行,公开微信分享完整工具,以及微信地图

    做微信分享时,在苹果手机分享一直不行,就尝试监听URL变化,发现不行.后来用刷新页面解决了. watch: { $route(to, from) { /** * route是异步改变的,所以,在cre ...

  2. Android_微信分享时提示“签名不对,请检查签名是否与开放平台上填写的一致。”

    传送门: Android_新浪微博分享提示"21338:sso package or sign error": https://blog.csdn.net/pang78755961 ...

  3. 基于静态URL的微信分享自定义缩略图及标题和摘要

    在静态页中实现微信分享自定义缩略图比动态页分享要复杂.下面是示例页面: 分享的效果(缩略图及标题.摘要是自己指定): 实现难点: (1)URL是变化的,我们分享一次后,微信会自动在分享的地址后增加了一 ...

  4. 微信分享带缩略图,标题,简介的JS代码(亲测有效)

    (function(){    var appId = '',             imgUrl = 'http://huaweiapu.toprand.com/ascendG7/assets/i ...

  5. iOS:开放平台引用(二)--微信分享

    API说明 类说明: 微信分享sdk文件:libWeChatSDK.a , WXApi.h , WXApiObject.h WXApi.h文件内容主要是调用微信分享的相关方法.接口: // WXApi ...

  6. 微信分享时自定义分享图片

    在开发微信小程序时产品提出了一个需求,就是当用户在阅读一片文章想分享时:1.分享时的背景需要和当前页面文章展示的背景一致(文章展示时背景是随机的).2:分享时分享的封面中的文案要和当前文章有关联,就是 ...

  7. Android 微信分享视频缩略图不显示问题

    最近再分享视频的时候出现一个问题缩略图不显示有些显示,虽然以前也遇到过但是忘了.今天这里再写一下方便记录 百度了一下很多!!! 微信分享功能,安卓手机分享图片不显示 android微信分享缩略图不显示 ...

  8. android+怎么分享图片大小,Android微信分享图片大于32k进行压缩

    微信分享视频的时候,需要传一个图片数组,大小不能大于32k. 解决方案:使用Bitmap自带的compress方法解决了这个问题. 源码如下: package com.example.test; im ...

  9. 微信分享,缩略图显示不出来

    这是个随时补充的问题解决贴,遇到一次不同的问题补充一次 1. 缩略图过大 解决办法:压缩 2. 缩略图是http的,但是android 系统是9.0及以上的,9.0以前不支持http请求协议 解决办法 ...

  10. php微信分享带缩略图,静态页面实现微信分享带缩略图、标题和描述

    在前一篇文章<微信转发或分享朋友圈带缩略图.标题和描述的实现方法>中,余斗已经教大家如何实现在自有网站上实现微信分享后自带缩略图.标题和描述,这里是在动态php页面中实现,这里有很大的局限 ...

最新文章

  1. 典型用户 persona
  2. [渝粤教育] 西南科技大学 英语语法1 在线考试复习资料
  3. Hive的安装和使用以及Java操作hive
  4. 字符集匹配:\s 匹配一个空格,一边后面加量词表示多个空格,\s*表示0个以上空格,\s+表示1个以上空格,\s相当于[\f\r\n\t ]5种空白字符。...
  5. channel(4)定时器
  6. NIST 按行政令关于加强软件供应链安全的要求,给出“关键软件”的定义及所含11类软件...
  7. CSS3属性calc函数(CSS3)
  8. linux系统中使用百度云盘
  9. Python爬取12306车次信息
  10. 2020秋招提前批--大疆--机器学习算法工程师--线上笔试题
  11. 脑袋越大就会越聪明么?
  12. 我熬夜开发了一款简约实用、支持多平台的Markdown在线编辑器(开源)
  13. 基于NaiveBayse SVM KNN的Python垃圾短信过滤系统 附代码
  14. 【网络空间安全数学基础第8章】环和域
  15. 商务通怎么做html留言板,网站商务通对话框设置技巧
  16. bert获得词向量_手把手教你完成句子分类,最好上手的BERT初级使用指南
  17. 网站推荐(3)——黑马Java学习路线
  18. 用Python量化海龟交易法则
  19. Linux基础-线程
  20. 使用HTML5/CSS3快速制作便签贴特效

热门文章

  1. android app唯一标识符,android 唯一识别码笔记
  2. 手动计算均值,方差,协方差,皮尔逊系数
  3. itellij jdk多重选择Class JavaLaunchHelper is implemented in both
  4. 0-1背包问题(回溯算法)
  5. mysql pmm安装_PMM 安装部署
  6. 实参与形参不兼容_python学习笔记------形参实参2
  7. python与西门子1200通讯_西门子S7-1200的以太网通信
  8. 现场打分实时展示系统-Web版(英文名:WebShow)使用疑难问题汇编
  9. 软件功能个性定制思维顺序
  10. mysql replace函数对字段进行字符替换