IOS 截取圖片 部分 並生成新圖片


/**
 *  從圖片中按指定的位置大小截取圖片的一部分
 *
 *  @param image UIImage image 原始的圖片
 *  @param rect  CGRect rect 要截取的區域
 *
 *  @return UIImage
 */
+ (UIImage *)ct_imageFromImage:(UIImage *)image inRect:(CGRect)rect{
    
    //把像 素rect 轉化為 點rect(如無轉化則按原圖像素取部分圖片)
    CGFloat scale = [UIScreen mainScreen].scale;
    CGFloat x= rect.origin.x*scale,y=rect.origin.y*scale,w=rect.size.width*scale,h=rect.size.height*scale;
    CGRect dianRect = CGRectMake(x, y, w, h);

    //截取部分圖片並生成新圖片
    CGImageRef sourceImageRef = [image CGImage];
    CGImageRef newImageRef = CGImageCreateWithImageInRect(sourceImageRef, dianRect);
    UIImage *newImage = [UIImage imageWithCGImage:newImageRef scale:[UIScreen mainScreen].scale orientation:UIImageOrientationUp];
    return newImage;
}

注: 

ios可以自動識別@2x 和@3x的圖片,以適應在不同屏幕上顯示的圖片大小一致,

這里截取的圖片是按像素在原圖上截取,原圖大小和屏幕上顯示的大小未必一致,

所以要進行相應的轉化,縮放比就是[UIScreen mainScreen].scale,不同屏幕的scale是不同的


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM