最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS中實(shí)現(xiàn)imageView任意角度旋轉(zhuǎn)的方法

 更新時(shí)間:2017年12月08日 10:42:38   作者:飛翔fly  
這篇文章主要給大家介紹了關(guān)于iOS中實(shí)現(xiàn)imageView任意角度旋轉(zhuǎn)的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。

前言

在實(shí)際的開發(fā)中我們可能會(huì)遇到這種情況: 需要對(duì)圖片進(jìn)行一定角度的旋轉(zhuǎn)。對(duì)于這種需要,我們可能會(huì)用UIView的transform進(jìn)行旋轉(zhuǎn),但是這樣做其實(shí)只是對(duì)承載imageView的view進(jìn)行了一定角度的旋轉(zhuǎn),而imageView并沒有旋轉(zhuǎn)。所有這樣的做法并不好。

如果需要實(shí)現(xiàn)對(duì)imageView實(shí)現(xiàn)一定角度的旋轉(zhuǎn),具體步驟是:

      1.將image轉(zhuǎn)成context。

      2.對(duì)context進(jìn)行一定角度的旋轉(zhuǎn)。

      3.將旋轉(zhuǎn)后的context 轉(zhuǎn)化成image。

經(jīng)過這三個(gè)步驟,我們就能夠?qū)崿F(xiàn)將圖片真正的做到旋轉(zhuǎn)。

 好了,直接上代碼:

#import"UIImage+RotateImageTool.h"
#import<QuartzCore/QuartzCore.h>
#import<Accelerate/Accelerate.h>
@implementationUIImage (RotateImageTool)
-(UIImage*)rotateImageWithDegree:(CGFloat)degree{
//將image轉(zhuǎn)化成context
//獲取圖片像素的寬和高
size_t width =self.size.width*self.scale;
size_t height =self.size.height*self.scale;
//顏色通道為8因?yàn)?-255經(jīng)過了8個(gè)顏色通道的變化
//每一行圖片的字節(jié)數(shù)因?yàn)槲覀儾捎玫氖茿RGB/RGBA所以字節(jié)數(shù)為width * 4
size_t bytesPerRow =width *4;
//圖片的透明度通道
CGImageAlphaInfo info =kCGImageAlphaPremultipliedFirst;
//配置context的參數(shù):
CGContextRef context =CGBitmapContextCreate(nil, width, height,8, bytesPerRow,CGColorSpaceCreateDeviceRGB(),kCGBitmapByteOrderDefault|info);
if(!context) {
return nil;
}
//將圖片渲染到圖形上下文中
CGContextDrawImage(context,CGRectMake(0,0, width, height),self.CGImage);
uint8_t* data = (uint8_t*)CGBitmapContextGetData(context);
//旋轉(zhuǎn)欠的數(shù)據(jù)
vImage_Buffer src = { data,height,width,bytesPerRow};
//旋轉(zhuǎn)后的數(shù)據(jù)
vImage_Buffer dest= { data,height,width,bytesPerRow};
//背景顏色
Pixel_8888 backColor = {0,0,0,0};
//填充顏色
vImage_Flags flags = kvImageBackgroundColorFill;
//旋轉(zhuǎn)context 
vImageRotate_ARGB8888(&src, &dest,nil, degree *M_PI/180.f, backColor, flags);
//將conetxt轉(zhuǎn)換成image
CGImageRef imageRef =CGBitmapContextCreateImage(context);
UIImage* rotateImage =[UIImageimageWithCGImage:imageRefscale:self.scaleorientation:self.imageOrientation];
returnrotateImage;
}

代碼中有詳細(xì)的注釋,在這里我就不過多的解釋了。感興趣的可以到github上面下載哦。

下載地址:github.com/15221532825/ImageTool  (本地下載

附:iOS ImageView的Image自適應(yīng)縮放顯示全套處理方法

// retina屏幕圖片顯示問題
[_detailImageView setContentScaleFactor:[[UIScreen mainScreen] scale]];
// 不規(guī)則圖片顯示
_detailImageView.contentMode = UIViewContentModeScaleAspectFill;
_detailImageView.autoresizingMask = UIViewAutoresizingFlexibleHeight;
// 圖片大于或小于顯示區(qū)域
_detailImageView.clipsToBounds = YES;

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問大家可以留言交流,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • iOS中應(yīng)用內(nèi)添加指紋識(shí)別的實(shí)例代碼

    iOS中應(yīng)用內(nèi)添加指紋識(shí)別的實(shí)例代碼

    iOS8之后蘋果發(fā)布了指紋識(shí)別的功能,通過touch ID來識(shí)別用戶,做用戶授權(quán),主要是依賴于LocalAuthentication庫,下面通過本文給大家介紹iOS中應(yīng)用內(nèi)添加指紋識(shí)別的實(shí)例代碼,一起看看吧
    2016-12-12
  • ios12中遇到的帶input彈窗的錯(cuò)位問題的解決方法

    ios12中遇到的帶input彈窗的錯(cuò)位問題的解決方法

    這篇文章主要介紹了ios12中遇到的帶input彈窗的錯(cuò)位問題的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • Xcode中iOS應(yīng)用開發(fā)的一般項(xiàng)目目錄結(jié)構(gòu)和流程簡(jiǎn)介

    Xcode中iOS應(yīng)用開發(fā)的一般項(xiàng)目目錄結(jié)構(gòu)和流程簡(jiǎn)介

    這篇文章主要介紹了Xcode中iOS應(yīng)用開發(fā)的一般項(xiàng)目目錄結(jié)構(gòu)和流程簡(jiǎn)介,包括項(xiàng)目所需的一些平臺(tái)路徑如模擬器路徑等的介紹,需要的朋友可以參考下
    2016-02-02
  • iOS11 下載之?dāng)帱c(diǎn)續(xù)傳的bug的解決方法

    iOS11 下載之?dāng)帱c(diǎn)續(xù)傳的bug的解決方法

    本篇文章主要介紹了iOS11 下載之?dāng)帱c(diǎn)續(xù)傳的bug的解決方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • IOS微信搖一搖聲音無法播放的解決辦法

    IOS微信搖一搖聲音無法播放的解決辦法

    這篇文章主要為大家詳細(xì)介紹了IOS微信搖一搖聲音無法播放的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • iOS如何獲取設(shè)備型號(hào)的最新方法總結(jié)

    iOS如何獲取設(shè)備型號(hào)的最新方法總結(jié)

    在開發(fā)中,我們經(jīng)常需要獲取設(shè)備的型號(hào)以進(jìn)行數(shù)據(jù)統(tǒng)計(jì)或者做不同的適配。這篇文章主要給大家介紹了關(guān)于iOS如何獲取設(shè)備型號(hào)的最新方法,需要的朋友可以參考下
    2018-11-11
  • iOS模仿微信長(zhǎng)按識(shí)別二維碼的多種方式

    iOS模仿微信長(zhǎng)按識(shí)別二維碼的多種方式

    這篇文章主要介紹了iOS模仿微信長(zhǎng)按識(shí)別二維碼的兩種方式,文章第二種方式是識(shí)別網(wǎng)頁中的二維碼,具體思路詳解大家參考下本文
    2017-07-07
  • iOS 模塊化之JLRoute路由示例

    iOS 模塊化之JLRoute路由示例

    這篇文章主要介紹了iOS 模塊化之JLRoute路由示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-02-02
  • iOS13 適配和Xcode11.0踩坑小結(jié)

    iOS13 適配和Xcode11.0踩坑小結(jié)

    這篇文章主要介紹了iOS13 適配和Xcode11.0踩坑小結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • iOS關(guān)閉虛擬鍵盤方法匯總

    iOS關(guān)閉虛擬鍵盤方法匯總

    在iOS應(yīng)用開發(fā)中,有三類視圖對(duì)象會(huì)打開虛擬鍵盤,進(jìn)行輸入操作,但如何關(guān)閉虛擬鍵盤,卻沒有提供自動(dòng)化的方法
    2016-04-04

最新評(píng)論

社旗县| 扎鲁特旗| 东辽县| 肇东市| 张家口市| 新竹县| 雅江县| 灵山县| 常熟市| 文水县| 桑植县| 木兰县| 达孜县| 辽宁省| 奉节县| 普宁市| 石家庄市| 封开县| 五家渠市| 玉田县| 鲜城| 江源县| 集贤县| 永吉县| 偏关县| 连江县| 将乐县| 霍州市| 东乡族自治县| 芜湖县| 浮山县| 绥中县| 台南市| 北海市| 德安县| 迭部县| 莱阳市| 综艺| 阳新县| 四川省| 安新县|