分享图片的时候,由于各个平台的图片大小的限制,或者为了节省用户流量,需要对图片进行压缩。这时候如果集成了ShareSDK
,可以使用其提供的压缩方法实现对图片的压缩。
* SSDKImage
/**
* JPG图片格式
*/
extern NSString *const SSDKImageFormatJpeg;
/**
* PNG图片格式
*/
extern NSString *const SSDKImageFormatPng;
/**
* 图片质量键,当图片为JPG时有效
*/
extern NSString *const SSDKImageSettingQualityKey;
/**
* 初始化图片
*
* @param image 原始的图片对象
* @param format 图片格式,由SSDKImageFormatJpeg和SSDKImageFormatPng来指定分享出去的是JPG还是PNG图片,如果传入其他值则默认为JPG
*
* @return 图片对象
*/
- (id)initWithImage:(UIImage *)image format:(NSString *)format settings:(NSDictionary *)settings;
此处的字典应该填充什么值呢?@{SSDKImageSettingQualityKey : @(compression)}
,其中compression
是你将要进行压缩的质量比。
这个方法很好用,他将压缩的图片保存到了沙盒的tmp/
路径下,由系统负责清理工作,非常方便。
其实分享图片压缩对于分享单张图片还没那么必要,对于多张图片的分享完全是有必要的,不然图片大小很可能超过限制,不能继续分享。
UIActivityViewController的多图分享。
通过自定义一个类并遵守UIActivityItemSource,将压缩的图片路径分享出去,达到压缩的目的。自定义类的实现可以参考这篇文章。
SLComposeViewController的多图分享。
通过
addURL:
将压缩图片的本地路径添加进去。