iOS 如何獲取旋轉(zhuǎn)之后的圖片image

遇到這個(gè)問題了,自然明白.....

  • 起初,只是旋轉(zhuǎn)了imageView,image并沒有真正旋轉(zhuǎn),代碼如下:
    double Degree=45.0/180.0;
    CGAffineTransform transform= CGAffineTransformMakeRotation(-M_PI* Degree);
    bgimgView.transform = transform;//旋轉(zhuǎn)bgimgView,沒有旋轉(zhuǎn)到bgimgView.image

+ (UIImage *)ehs_imageWithRotation:(UIImage *)image rotationDegree:(CGFloat)degree
{
    //將image轉(zhuǎn)化成context
    //獲取圖片像素的寬和高
    size_t width =  image.size.width * image.scale;
    size_t height = image.size.height * image.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;
    CGContextRef context = CGBitmapContextCreate(nil, width, height, 8, bytesPerRow, CGColorSpaceCreateDeviceRGB(), kCGBitmapByteOrderDefault|info);
    
    if (!context) {
        return nil;
    }
    //將圖片渲染到圖形上下文中
    CGContextDrawImage(context, CGRectMake(0, 0, width, height), image.CGImage);
    
    //旋轉(zhuǎn)context
    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;
    
    vImageRotate_ARGB8888(&src, &dest, nil, degree * M_PI/180.f, backColor, flags);
    
    //將conetxt轉(zhuǎn)換成image
    CGImageRef imageRef = CGBitmapContextCreateImage(context);
    UIImage  * rotateImage =[UIImage imageWithCGImage:imageRef scale:image.scale orientation:image.imageOrientation];
    
    return  rotateImage;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,652評(píng)論 1 32
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,309評(píng)論 0 15
  • 周六早上我很早就吃來了,我先騎了會(huì)兒自行車然后等天明了就去吃飯,我吃完飯就在寫作業(yè),我只能寫一上午,因?yàn)槲蚁挛缫?..
    雁楠閱讀 171評(píng)論 0 0
  • 今天是父親節(jié),想起父親這個(gè)稱謂就讓我同時(shí)想起“父愛如山”這個(gè)形容父親的詞匯來。動(dòng)筆來寫我的父親時(shí)感到內(nèi)心...
    4b40c2d9081e閱讀 135評(píng)論 0 0
  • 最近一段時(shí)間忙這忙那,一直沒能抽出時(shí)間來去堂哥堂嫂家看看。上午給堂嫂打了個(gè)電話問問近況,堂嫂告知她今晚坐火車...
    向陽的紫藤花閱讀 845評(píng)論 2 2

友情鏈接更多精彩內(nèi)容