• 根据size截取图片中间矩形区域的图片 这里的size是正方形


    #pragma mark 根据size截取图片中间矩形区域的图片 这里的size是正方形
    -(UIImage *)cutCenterImage:(UIImage *)image size:(CGSize)size{
        CGSize imageSize = image.size;
        CGRect rect;
        //根据图片的大小计算出图片中间矩形区域的位置与大小
        if (imageSize.width > imageSize.height) {
            float leftMargin = (imageSize.width - imageSize.height) * 0.5;
            rect = CGRectMake(leftMargin, 0, imageSize.height, imageSize.height);
        }else{
            float topMargin = (imageSize.height - imageSize.width) * 0.5;
            rect = CGRectMake(0, topMargin, imageSize.width, imageSize.width);
        }
        
        CGImageRef imageRef = image.CGImage;
        //截取中间区域矩形图片
        CGImageRef imageRefRect = CGImageCreateWithImageInRect(imageRef, rect);
        
        UIImage *tmp = [[UIImage alloc] initWithCGImage:imageRefRect];
        CGImageRelease(imageRefRect);
        
        UIGraphicsBeginImageContext(size);
        CGRect rectDraw = CGRectMake(0, 0, size.width, size.height);
        [tmp drawInRect:rectDraw];
        // 从当前context中创建一个改变大小后的图片
        tmp = UIGraphicsGetImageFromCurrentImageContext();
        
        // 使当前的context出堆栈
        UIGraphicsEndImageContext();
        
        return tmp;
    }
    
  • 相关阅读:
    DLUTOJ 1209 字典序和r-子集
    C++ Standard-Library Random Numbers
    后缀数组模板
    UVA 1398 Meteor
    STL Iterators
    hihocoder1187 Divisors
    51nod 子序列的个数(动态规划)
    51nod 最长单增子序列(动态规划)
    51nod 更难的矩阵取数问题(动态规划)
    51nod 多重背包问题(动态规划)
  • 原文地址:https://www.cnblogs.com/sozui/p/4395872.html
Copyright © 2020-2023  润新知