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

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

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

前言

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

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

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

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

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

經(jīng)過這三個步驟,我們就能夠?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個顏色通道的變化
//每一行圖片的字節(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é)

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

相關(guān)文章

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

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

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

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

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

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

    這篇文章主要介紹了Xcode中iOS應(yīng)用開發(fā)的一般項(xiàng)目目錄結(jié)構(gòu)和流程簡介,包括項(xiàng)目所需的一些平臺路徑如模擬器路徑等的介紹,需要的朋友可以參考下
    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的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • IOS微信搖一搖聲音無法播放的解決辦法

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

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

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

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

    iOS模仿微信長按識別二維碼的多種方式

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

    iOS 模塊化之JLRoute路由示例

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

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

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

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

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

最新評論

广西| 宝应县| 晋城| 河津市| 体育| 漳州市| 安塞县| 海兴县| 济宁市| 瑞安市| 县级市| 平遥县| 平顺县| 陵川县| 高雄县| 福海县| 峨山| 浪卡子县| 临海市| 惠州市| 宣城市| 慈利县| 祁东县| 马鞍山市| 金门县| 衡水市| 观塘区| 水城县| 广宁县| 绍兴县| 定襄县| 和田县| 玉山县| 启东市| 卢龙县| 乐业县| 乌拉特后旗| 馆陶县| 叙永县| 德清县| 遂宁市|