Sagit.Framework For IOS 自动布局教程:13、UIImage、UIImageView 图片压缩、(长按)保存、缩放、(列表)放大浏览、生成验证码。
前言:
本篇介绍UIImage、UIImageView 元素的常用功能用法。
1、UIImage 特殊用法:图片压缩、图片保存相册、图片缩放、返回图片数据。
基本定义:
@interface UIImage(ST) //!为每个UI都扩展有一个name @property (nonatomic,copy) NSString* name; typedef void (^AfterImageSave)(NSError *err); @property (nonatomic,copy) AfterImageSave afterImageSaveBlock; //!获取图片压缩后的字节数据,当前图片不受变化 -(NSData*)compress:(NSInteger)maxKb; -(void)save:(AfterImageSave)afterSave; //!检测最大宽高的等比缩放 -(UIImage *)reSize:(CGSize)maxSize; -(NSData*)data; @end
2、UIImageView 特殊用法:图片长按保存事件、保存相册事件、圆角、缩放、选择图片库(单选)、网址加载图片。
基本定义
@interface UIImageView(ST)<UIImagePickerControllerDelegate> typedef void (^OnPick)(NSData *data,UIImagePickerController *picker,NSDictionary<NSString *,id> *info); //typedef void (^AfterSetImageUrl)(UIImageView* img); //!长按时提示用户保存图片 -(UIImageView*)longPressSave:(BOOL)yesNo; //!执行保存图片事件 -(UIImageView*)save; //!设置图片是否圆角 -(UIImageView*)corner:(BOOL)yesNo; //!获取图片的地址 -(NSString*)url; //!为图片设置一个网络地址 (默认超过256K时会进行压缩) -(UIImageView*)url:(NSString*)url; //!为图片设置一个网络地址 (默认超过256K时会进行压缩)afterSet为设置后的回调函数 //-(UIImageView *)url:(NSString *)url after:(AfterSetImageUrl)block; //!为图片设置一个网络地址 (默认超过256K时会进行压缩)default:设置一张默认图片 -(UIImageView *)url:(NSString *)url default:(id)imgOrName; //!为图片设置一个网络地址 maxKb 指定超过大小时压缩显示(设置为0不压缩) //-(UIImageView *)url:(NSString *)url maxKb:(NSInteger)compress; //!为图片设置一个网络地址 (默认超过256K时会进行压缩) maxKb 指定超过大小时压缩显示(设置为0不压缩) default:设置一张默认图片 -(UIImageView *)url:(NSString *)url default:(id)imgOrName maxKb:(NSInteger)compress; //!为图片设置一个网络地址 (默认超过256K时会进行压缩) maxKb 指定超过大小时压缩显示(设置为0不压缩) default:设置一张默认图片 afterSet为设置后的回调函数 //-(UIImageView *)url:(NSString *)url maxKb:(NSInteger)compress default:(id)imgOrName after:(AfterSetImageUrl)block; //!图片选择 edit:是否出现裁剪框 -(UIImageView*)pick:(OnPick)pick edit:(BOOL)yesNo; //!图片选择 edit:是否出现裁剪框 maxKb:指定压缩的大小 -(UIImageView*)pick:(OnPick)pick edit:(BOOL)yesNo maxKb:(NSInteger)maxKb; //!将图片压缩到指定的宽高,当前图片受变化 -(UIImageView*)reSize:(CGSize)maxSize;
新增的功能:
#pragma mark 浏览查看大图、(去掉第3方图片查看) //!双击切换放大查看 -(void)zoom; -(UIImageView *)zoom:(BOOL)yesNo; //!点击发大查看 -(void)show; -(UIImageView *)show:(BOOL)yesNo; +(void)show:(NSInteger)startIndex images:(id)imgOrNameOrArray,...NS_REQUIRES_NIL_TERMINATION;
3、使用示例
这是内部弹出图片的实现功能,刚好用到了不少图片功能,当为示例也行:
+(void)show:(NSInteger)startIndex images:(id)imgOrNameOrArray, ... { if(imgOrNameOrArray==nil){return;} [Sagit.MsgBox dialog:^(UIView *winView) { [[[winView addScrollView:nil direction:X] addImages:imgOrNameOrArray, nil]block:^(UIScrollView* scrollView) { [scrollView setPagerIndex:startIndex]; [[scrollView showPager:YES] backgroundColor:ColorBlack]; scrollView.onPrePager = ^(UIScrollView *scrollView) { }; scrollView.onNextPager = ^(UIScrollView *scrollView) { }; for (int i=0; i<scrollView.subviews.count; i++) { UIImageView *imgView=(UIImageView*)scrollView.subviews[i]; [[imgView longPressSave:YES] zoom:YES]; [imgView onClick:^(id view) { [[winView hidden:YES] click]; }]; } }]; }]; }
示例2:
[imgView onClick:^(UIView *view) { NSMutableArray *array=[NSMutableArray new]; for (PersonalPhoto *item in photos) { [array addObject:item.BigPhotoPath]; } [UIImageView show:i images:array, nil]; }];
效果:
4、生成验证码:[可指定背景色或字体颜色]
定义:
#pragma mark 本地验证码 -(NSString*)VerifyCode; //!生成指定长度验证码(随机背景色)。 -(UIImageView*)VerifyCode:(NSInteger)length; //!生成指定长度验证码(指定背景色,随机字体颜色)。 -(UIImageView*)VerifyCode:(NSInteger)length fixBgColor:(UIColor*)fixBgColor; //!生成指定长度验证码(指定背景色,指定字体颜色)。 -(UIImageView *)VerifyCode:(NSInteger)length fixBgColor:(UIColor *)fixBgColor fixFontColor:(UIColor *)fixFontColor;
示例代码:
[[[[sagit addImageView:@“imgCode”] width:300 height:100] layerCornerRadius:30] .asImageView VerifyCode:4] toCenter];
图片:
获取验证码:
NSString *code=STImageView("imgCode").VerifyCode;
版权声明:程序员胖胖胖虎阿 发表于 2022年9月14日 下午2:24。
转载请注明:Sagit.Framework For IOS 自动布局教程:13、UIImage、UIImageView 图片压缩、(长按)保存、缩放、(列表)放大浏览、生成验证码。 | 胖虎的工具箱-编程导航
转载请注明:Sagit.Framework For IOS 自动布局教程:13、UIImage、UIImageView 图片压缩、(长按)保存、缩放、(列表)放大浏览、生成验证码。 | 胖虎的工具箱-编程导航
相关文章
暂无评论...