iOS 圖片裁剪,旋轉(zhuǎn)角度,微調(diào)角度 LEGOImageCropper

實(shí)現(xiàn)與效果

  • 微調(diào)角度
  • 90°角旋轉(zhuǎn)
  • 改變寬高比例
  • 旋轉(zhuǎn)和微調(diào)過(guò)程中適應(yīng)邊框填充邊界
  • 源碼

微調(diào)角度

微調(diào)角度操作

- (void)beginTrackingWithTouch {

    // 開(kāi)始微調(diào)角度

}

- (void)continueTrackingWithTouch:(CGFloat)value changeValue:(CGFloat)changeValue {

    // 調(diào)整中

    [self.imageCropperView setRotationAngle:changeValue];

}

- (void)endTrackingWithTouch {

    // 微調(diào)角度結(jié)束

}

90°角旋轉(zhuǎn)

90°角旋轉(zhuǎn)操作

- (void)rotate:(id)sender {

    [self.imageCropperView rotation:YES];

}

改變寬高比例

改變寬高比例操作

- (void)resizeWHScale:(id)sender {

[UIView animateWithDuration:0.15 animations:^{

 self.imageCropperView.frame = [self imageCropViewFrame:self.currType];

[self.imageCropperView setResizeWHRatio:self.currScale animated:NO];

}completion:nil];

其他可設(shè)置屬性


/** 裁剪框顏色 / Mask layer color */

**@property (nonatomic, strong) UIColor *maskColor;

/** 裁剪框陰影 / Mask frame color */

**@property (nonatomic, strong) UIColor *shadowColor;

/** 網(wǎng)格線顏色 / Gridlines color */

**@property (nonatomic, strong) UIColor *shapeLayerColor;

/** 是否允許雙指自由旋轉(zhuǎn)  / Allow two fingers to rotate freely ,default value is YES */

**@property (nonatomic, assign, getter=isRotationEnabled) BOOL rotationEnabled;

/** 是否允許雙擊重置 / Allow double click Reset , default value is YES */

**@property (nonatomic, assign, getter=isDoubleResetEnabled) BOOL doubleResetEnabled;

/** 是否為順勢(shì)轉(zhuǎn)旋轉(zhuǎn) / Is it clockwise rotation , default value is NO */

**@property (nonatomic, assign, getter=isClockwiseRotation) BOOL clockwiseRotation;

/** 重置 / reset */

- (void)reset:(BOOL)animated;

/** 設(shè)置【裁剪比例】 / Setup the cut scale */

**@property (nonatomic, assign) CGSize resizeWHRatio;

- (void)setResizeWHRatio:(CGSize)resizeWHRatio;

- (void)setResizeWHRatio:(CGSize)resizeWHRatio animated:(BOOL)animated;

/** 設(shè)置【旋轉(zhuǎn)角度】/ Setup the rotation angle */

@property (nonatomic, assign) CGFloat rotationAngle;

- (void)rotation:(BOOL)animated;

- (void)setRotationAngle:(CGFloat)rotationAngle;

- (void)setRotationAngle:(CGFloat)rotationAngle animated:(BOOL)animated;

關(guān)于旋轉(zhuǎn)和微調(diào)過(guò)程中適應(yīng)邊框填充邊界的計(jì)算方式

旋轉(zhuǎn)過(guò)程中政溃,為防止漏出黑色背景區(qū)域,需要在調(diào)整過(guò)程中對(duì) scrollview 進(jìn)行縮放态秧,以滿(mǎn)足圖片充滿(mǎn)裁剪區(qū)域董虱,計(jì)算方式如下:

地鐵上寫(xiě)的計(jì)算方法,粗糙

即:
scrollview.width = CGRectGetWidth(maskRect) * cos(a) + CGRectGetHeight(maskRect) * sin(a);
scrollview.height = CGRectGetHeight(maskRect) * cos(a) + CGRectGetWidth(maskRect) * sin(a);

源碼

有興趣的可以下載看下申鱼,希望大佬多多點(diǎn)星愤诱。

https://github.com/legokit/LEGOImageCropper

GitHub - legokit/LEGOImageCropper: imageCropper, crop image, Picture cropper, support to resizeWHScale, set size, rotate angle, fine adjust angle, image crop. 圖片裁剪,支持大小縮放捐友,設(shè)置大小淫半,旋轉(zhuǎn)角度,微調(diào)角度匣砖,裁剪產(chǎn)品圖片科吭。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末猴鲫,一起剝皮案震驚了整個(gè)濱河市对人,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌拂共,老刑警劉巖牺弄,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異匣缘,居然都是意外死亡猖闪,警方通過(guò)查閱死者的電腦和手機(jī)鲜棠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)培慌,“玉大人豁陆,你說(shuō)我怎么就攤上這事〕郴ぃ” “怎么了盒音?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)馅而。 經(jīng)常有香客問(wèn)我祥诽,道長(zhǎng),這世上最難降的妖魔是什么瓮恭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任雄坪,我火速辦了婚禮,結(jié)果婚禮上屯蹦,老公的妹妹穿的比我還像新娘维哈。我一直安慰自己,他們只是感情好登澜,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布阔挠。 她就那樣靜靜地躺著,像睡著了一般脑蠕。 火紅的嫁衣襯著肌膚如雪购撼。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,031評(píng)論 1 285
  • 那天谴仙,我揣著相機(jī)與錄音迂求,去河邊找鬼。 笑死狞甚,一個(gè)胖子當(dāng)著我的面吹牛锁摔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哼审,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼孕豹!你這毒婦竟也來(lái)了涩盾?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤励背,失蹤者是張志新(化名)和其女友劉穎春霍,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體叶眉,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡址儒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年芹枷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莲趣。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸳慈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出喧伞,到底是詐尸還是另有隱情走芋,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布潘鲫,位于F島的核電站翁逞,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏溉仑。R本人自食惡果不足惜挖函,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望浊竟。 院中可真熱鬧怨喘,春花似錦、人聲如沸逐沙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)吩案。三九已至棚赔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間徘郭,已是汗流浹背靠益。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留残揉,地道東北人胧后。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像抱环,于是被迫代替她去往敵國(guó)和親壳快。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345