登录 立即注册
金钱:

Code4App-iOS开发-iOS 开源代码库-iOS代码实例搜索-iOS特效示例-iOS代码例子下载-Code4App.com

JPImageresizerView 0.3.1 --- 仿微信裁剪图片的一个裁剪小工具

[复制链接]
来自: Rogue24 分类: iOS精品源码 上传时间: 2018-1-3 15:26:28
Tag:

项目介绍:

JPImageresizerView

简介

仿微信裁剪图片的一个裁剪小工具。
GitHub地址:https://github.com/Rogue24/JPImageresizerView

目前功能:
    1.能自适应裁剪区域的缩放;
    2.高自由度的参数设定,包括裁剪区域的间距、裁剪宽高比、是否自适应缩放等;
    3.支持最多8个拖拽方向的裁剪区域;
    4.支持上左下右的旋转;
    5.水平和垂直的镜像翻转;
    6.两种边框样式;
    7.自定义遮罩颜色,或两种高斯模糊的遮罩

注意:
    1.由于自动布局不利于手势控制,所以目前使用的是frame布局,暂不支持自动布局;
    2.目前仅支持竖屏操作。
    
之后的更新内容:
    1.Swift版本;
    2.适配横竖屏切换;
    3.更多新的边框和遮罩样式;
    4.更多的参数设定;
    5.实现苹果自带的裁剪功能中的自由拖拽旋转方向的效果

image

如何使用

初始化

// 方式一:使用工厂方法配置参数(裁剪的图片、frame、遮罩样式、边框样式、动画曲线、裁剪线颜色、背景色、遮罩透明度、垂直和水平的间距、裁剪的宽高比、裁剪区域的内边距、可否重置的回调)

JPImageresizerView *imageresizerView = [[JPImageresizerView alloc]
                                        initWithResizeImage:[UIImage imageNamed:@"Girl.jpg"]
                                        frame:frame
                                        maskType:JPConciseFrameType
                                        frameType:JPConciseFrameType
                                        animationCurve:JPAnimationCurveLinear
                                        strokeColor:[UIColor whiteColor]
                                        bgColor:[UIColor blackColor]
                                        maskAlpha:0.75
                                        verBaseMargin:10
                                        horBaseMargin:10
                                        resizeWHScale:0
                                        contentInsets:UIEdgeInsetsZero
                                        imageresizerIsCanRecovery:^(BOOL isCanRecovery) {
                                            // 可在这里监听到是否可以重置
                                            // 注意循环引用
                                        }];

// 方式二:使用JPImageresizerConfigure配置好参数再创建

JPImageresizerConfigure *configure = [JPImageresizerConfigure defaultConfigureWithResizeImage:image make:^(JPImageresizerConfigure *configure) {
    // 到这里已经有了默认参数值,可以在这里另外设置你想要的参数值(使用了链式编程方式)
    configure.jp_resizeImage([UIImage imageNamed:@"Kobe.jpg"]).
    jp_maskAlpha(0.5).
    jp_strokeColor([UIColor yellowColor]).
    jp_frameType(JPClassicFrameType).
    jp_contentInsets(contentInsets).
    jp_bgColor([UIColor orangeColor]).
    jp_isClockwiseRotation(YES).
    jp_animationCurve(JPAnimationCurveEaseOut);
}];

JPImageresizerView *imageresizerView = [JPImageresizerView imageresizerViewWithConfigure:self.configure imageresizerIsCanRecovery:^(BOOL isCanRecovery) {
    // 可在这里监听到是否可以重置
    // 注意循环引用
}];

// 添加到视图上
[self.view addSubview:imageresizerView];
self.imageresizerView = imageresizerView;

// 创建后也可以修改以上部分参数(除了maskType和contentInsets)
self.imageresizerView.resizeImage = [UIImage imageNamed:@"Kobe.jpg"];
self.imageresizerView.resizeWHScale = 16.0 / 9.0;

更改边框样式

image
image

// 目前只提供两种边框样式,分别是简洁样式JPConciseFrameType,和经典样式JPClassicFrameType
// 可在初始化或直接设置frameType属性来修改边框样式
self.imageresizerView.frameType = JPClassicFrameType;

镜像翻转

image

// 垂直镜像,YES->沿着Y轴旋转180°,NO->还原
BOOL isVerticalityMirror = !self.imageresizerView.verticalityMirror;
[self.imageresizerView setVerticalityMirror:isVerticalityMirror animated:YES];

// 水平镜像,YES->沿着X轴旋转180°,NO->还原
BOOL isHorizontalMirror = !self.imageresizerView.horizontalMirror;
[self.imageresizerView setHorizontalMirror:isHorizontalMirror animated:YES];

旋转

// 默认逆时针旋转,旋转角度为90°
[self.imageresizerView rotation];

// 若需要顺时针旋转可设置isClockwiseRotation属性为YES
self.imageresizerView.isClockwiseRotation = YES;

重置

// 重置为初始状态,方向垂直向上
[self.imageresizerView recovery];

裁剪

// 裁剪过程是在子线程中执行,回调则切回主线程执行
// 调用可添加提示...
[self.imageresizerView imageresizerWithComplete:^(UIImage *resizeImage) {
    // 裁剪完成,resizeImage为裁剪后的图片
    // 注意循环引用
}];

其他

// 锁定裁剪区域,锁定后无法拖动裁剪区域,NO则解锁
self.imageresizerView.isLockResizeFrame = YES;

// 旋转至水平方向时是否自适应裁剪区域大小
// 当图片宽度比图片高度小时,该属性默认YES,可手动设为NO
self.imageresizerView.isAutoScale = NO;

安装

JPImageresizerView 可通过CocoaPods安装,只需添加下面一行到你的podfile:

pod 'JPImageresizerView'

反馈地址

邮箱:zhoujianping24@hotmail.com
博客:https://www.jianshu.com/u/2edfbadd451c

相关源码推荐:

我来说两句
*滑动验证:
所有评论(127)
AlonMessi 2018-1-4 10:32:45
我是来学习的
回复
hellokenken 2018-1-4 10:35:06
mark,收藏了
回复
phoiu 2018-1-4 10:35:56
code4app好的代码demo真的很多,谢谢啦~
回复
littleRed 2018-1-4 10:35:59
虽不明,但觉厉...
回复
kengsir 2018-1-4 10:36:04
小弟学习了~支持,支持
回复
BlueManlove 2018-1-4 10:36:11
学习...学习...
回复
mmli0323 2018-1-4 14:26:35
虽不明,但觉厉!
回复
code4app热心网友 2018-1-5 09:02:37
楼主用心了,内容非常精彩。
回复
code4app热心网友 2018-1-5 10:58:44
学习学习!
回复
提取码:  下载次数:63 状态:已购或VIP 售价:0(原价:15)金钱 下载权限:初级码农 
1706 2 63
联系我们
首页/微信公众账号投稿

帖子代码编辑/版权问题

QQ:435399051,742864542

如何获得代码达人称号?

代码贡献英雄榜
用户名 下载数
通过邮件订阅最新 Code4App 信息
上一条 /4 下一条
联系我们
关闭
合作电话:
13802416937
Email:
435399051@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| Github|申请友链|手机版|Code4App ( 粤ICP备15117877号-1 )

快速回复 返回顶部 返回列表