




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【移动应用开发技术】怎么在iOS中实现微信分享多张图片功能
今天就跟大家聊聊有关怎么在iOS中实现微信分享多张图片功能,可能很多人都不太了解,为了让大家更加了解,在下给大家总结了以下内容,希望大家根据这篇文章可以有所收获。OC代码UIImage
*imageToShare
=
[UIImage
imageNamed:@"99687078.jpg"];
UIImage
*imageToShare1
=
[UIImage
imageNamed:@"2222.jpg"];
NSArray
*activityItems
=
@[imageToShare,imageToShare1];
UIActivityViewController
*activityVC
=
[[UIActivityViewController
alloc]initWithActivityItems:activityItems
applicationActivities:nil];
[self
presentViewController:activityVC
animated:TRUE
completion:nil];swift代码let
imageToShare1
=
UIImage.init(named:
"99687078.jpg")
let
imageToShare2
=
UIImage.init(named:
"2222.jpg")
let
activityItems
=
[imageToShare1,imageToShare2]
let
activityVC
=
UIActivityViewController.init(activityItems:
activityItems,
applicationActivities:
nil)
self.present(activityVC,
animated:
true,
completion:
nil)运行截图注意我们在分享多张图片到朋友圈的时候会发现,我们在不做任何处理的时候,直接从手机相册调取多张图片分享的时候,分享失败。具体什么原因我研究了一下,发现分享的数据总共大小有限制;在这里举个例子,比如电梯,电梯限定的重量是固定的,所以不管你乘坐多少人,乘坐的人比较胖,那就乘坐的人比较少,如果乘坐的人比较瘦,那就可以多坐几个;所以UIActivityViewController分享多张图片到朋友圈的时候,我根据图片数量的多少,然后把图片压缩到指定宽高,比如一张图片,我就压缩成和微信压缩图片一样的大小1280,如果9张我就压缩成500;代码压缩图片的方法在下面粘出,其中compressibilityFactor为图片宽高的最大值;#import
"WeChatJPEGImager.h"
#define
KCompressibilityFactor
1280.00
@implementation
WeChatJPEGImager
#pragma
mark
-
压缩一张图片
最大宽高1280
类似于微信算法
-
(UIImage
*)getJPEGImagerImg:(UIImage
*)image{
CGFloat
oldImg_WID
=
image.size.width;
CGFloat
oldImg_HEI
=
image.size.height;
//CGFloat
aspectRatio
=
oldImg_WID/oldImg_HEI;//宽高比
if(oldImg_WID
>
KCompressibilityFactor
||
oldImg_HEI
>
KCompressibilityFactor){
//超过设置的最大宽度
先判断那个边最长
if(oldImg_WID
>
oldImg_HEI){
//宽度大于高度
oldImg_HEI
=
(KCompressibilityFactor
*
oldImg_HEI)/oldImg_WID;
oldImg_WID
=
KCompressibilityFactor;
}else{
oldImg_WID
=
(KCompressibilityFactor
*
oldImg_WID)/oldImg_HEI;
oldImg_HEI
=
KCompressibilityFactor;
}
}
UIImage
*newImg
=
[self
imageWithImage:image
scaledToSize:CGSizeMake(oldImg_WID,
oldImg_HEI)];
NSData
*dJpeg
=
nil;
if
(UIImagePNGRepresentation(newImg)==nil)
{
dJpeg
=
UIImageJPEGRepresentation(newImg,
0.5);
}else{
dJpeg
=
UIImagePNGRepresentation(newImg);
}
return
[UIImage
imageWithData:dJpeg];
}
#pragma
mark
-
压缩多张图片
最大宽高1280
类似于微信算法
-
(NSArray
*)getJPEGImagerImgArr:(NSArray
*)imageArr{
NSMutableArray
*newImgArr
=
[NSMutableArray
new];
for
(int
i
=
0;
i<imageArr.count;
i++)
{
UIImage
*newImg
=
[self
getJPEGImagerImg:imageArr[i]];
[newImgArr
addObject:newImg];
}
return
newImgArr;
}
#pragma
mark
-
压缩一张图片
自定义最大宽高
-
(UIImage
*)getJPEGImagerImg:(UIImage
*)image
compressibilityFactor:(CGFloat)compressibilityFactor{
CGFloat
oldImg_WID
=
image.size.width;
CGFloat
oldImg_HEI
=
image.size.height;
//CGFloat
aspectRatio
=
oldImg_WID/oldImg_HEI;//宽高比
if(oldImg_WID
>
compressibilityFactor
||
oldImg_HEI
>
compressibilityFactor){
//超过设置的最大宽度
先判断那个边最长
if(oldImg_WID
>
oldImg_HEI){
//宽度大于高度
oldImg_HEI
=
(compressibilityFactor
*
oldImg_HEI)/oldImg_WID;
oldImg_WID
=
compressibilityFactor;
}else{
oldImg_WID
=
(compressibilityFactor
*
oldImg_WID)/oldImg_HEI;
oldImg_HEI
=
compressibilityFactor;
}
}
UIImage
*newImg
=
[self
imageWithImage:image
scaledToSize:CGSizeMake(oldImg_WID,
oldImg_HEI)];
NSData
*dJpeg
=
nil;
if
(UIImagePNGRepresentation(newImg)==nil)
{
dJpeg
=
UIImageJPEGRepresentation(newImg,
0.5);
}else{
dJpeg
=
UIImagePNGRepresentation(newImg);
}
return
[UIImage
imageWithData:dJpeg];
}
#pragma
mark
-
压缩多张图片
自定义最大宽高
-
(NSArray
*)getJPEGImagerImgArr:(NSArray
*)imageArr
compressibilityFactor:(CGFloat)compressibilityFactor{
NSMutableArray
*newImgArr
=
[NSMutableArray
new];
for
(int
i
=
0;
i<imageArr.count;
i++)
{
UIImage
*newImg
=
[self
getJPEGImagerImg:imageArr[i]
compressibilityFactor:compressibilityFactor];
[newImgArr
addObject:newImg];
}
return
newImgArr;
}
#pragma
mark
-
根据宽高压缩图片
-
(UIImage
*)imageWithImage:(UIImage
*)image
scaledToSize:(CGSize)newSize{
UIGraphicsBegin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邵阳市新邵县2025届四下数学期末检测模拟试题含解析
- 房产最高额担保合同
- 宽城满族自治县2025年数学五年级第二学期期末综合测试模拟试题含答案
- 2025年度企业单位借款合同范例
- 山东省枣庄市滕州市2024-2025学年高二下学期第一次检测历史试卷(含答案)
- 餐饮服务外包合同范本多条款
- 科研仪器设备采购合同
- 物资供应合同
- 傣族民间舞的风格特点
- 三年级上册4、水生植物教案
- 电商行业10万字PRD
- 2024-2025学年八年级下学期道德与法治期中模拟试卷(一)(统编版含答案解析)
- 防溺水工作布置教师会议上校长讲话:全力防溺水守护学生生命“生命线”
- 湖南省永州市祁阳市茅竹镇中心学校2024-2025学年下学期期中监测八年级下册《物理》试卷(含答案)
- GB/T 26354-2025旅游信息咨询服务
- 交互式影像中叙事与视觉表达的融合及其观众体验研究
- SL631水利水电工程单元工程施工质量验收标准第1部分:土石方工程
- 情绪的管理课件
- 重难点05 涉及二次函数的图形变化类问题与二次函数有关的创新类问题(2种命题预测+77种题型汇-总+专题训练+3种解题方法)(解析版)
- 江苏省外国语学校2024-2025学年度高二下学期期中考试历史试题
- 精神分裂症个案护理汇报
评论
0/150
提交评论