iOS中如何實現imageView任意角度旋轉-創(chuàng)新互聯

這篇文章主要介紹iOS中如何實現imageView任意角度旋轉,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

創(chuàng)新互聯服務項目包括紅河網站建設、紅河網站制作、紅河網頁制作以及紅河網絡營銷策劃等。多年來,我們專注于互聯網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯網行業(yè)的解決方案,紅河網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到紅河省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

如果需要實現對imageView實現一定角度的旋轉,具體步驟是:

     1.將image轉成context。

     2.對context進行一定角度的旋轉。

     3.將旋轉后的context 轉化成image。

經過這三個步驟,我們就能夠實現將圖片真正的做到旋轉。

好了,直接上代碼:

#import"UIImage+RotateImageTool.h"
#import<QuartzCore/QuartzCore.h>
#import<Accelerate/Accelerate.h>
@implementationUIImage (RotateImageTool)
-(UIImage*)rotateImageWithDegree:(CGFloat)degree{
//將image轉化成context
//獲取圖片像素的寬和高
size_t width =self.size.width*self.scale;
size_t height =self.size.height*self.scale;
//顏色通道為8因為0-255經過了8個顏色通道的變化
//每一行圖片的字節(jié)數因為我們采用的是ARGB/RGBA所以字節(jié)數為width * 4
size_t bytesPerRow =width *4;
//圖片的透明度通道
CGImageAlphaInfo info =kCGImageAlphaPremultipliedFirst;
//配置context的參數:
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);
//旋轉欠的數據
vImage_Buffer src = { data,height,width,bytesPerRow};
//旋轉后的數據
vImage_Buffer dest= { data,height,width,bytesPerRow};
//背景顏色
Pixel_8888 backColor = {0,0,0,0};
//填充顏色
vImage_Flags flags = kvImageBackgroundColorFill;
//旋轉context 
vImageRotate_ARGB8888(&src, &dest,nil, degree *M_PI/180.f, backColor, flags);
//將conetxt轉換成image
CGImageRef imageRef =CGBitmapContextCreateImage(context);
UIImage* rotateImage =[UIImageimageWithCGImage:imageRefscale:self.scaleorientation:self.imageOrientation];
returnrotateImage;
}

iOS中如何實現imageView任意角度旋轉

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

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

附:iOS ImageView的Image自適應縮放顯示全套處理方法

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

以上是“iOS中如何實現imageView任意角度旋轉”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯網站建設公司行業(yè)資訊頻道!

另外有需要云服務器可以了解下創(chuàng)新互聯建站bm7419.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

名稱欄目:iOS中如何實現imageView任意角度旋轉-創(chuàng)新互聯
文章起源:http://bm7419.com/article38/cesisp.html

成都網站建設公司_創(chuàng)新互聯,為您提供商城網站、動態(tài)網站品牌網站制作、用戶體驗、外貿建站、網站設計公司

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

微信小程序開發(fā)