【移动应用开发技术】怎么在iOS中实现微信分享多张图片功能_第1页
【移动应用开发技术】怎么在iOS中实现微信分享多张图片功能_第2页
【移动应用开发技术】怎么在iOS中实现微信分享多张图片功能_第3页
【移动应用开发技术】怎么在iOS中实现微信分享多张图片功能_第4页
【移动应用开发技术】怎么在iOS中实现微信分享多张图片功能_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【移动应用开发技术】怎么在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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论