• UIImage 截图


    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
       
        UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(50, 100, 200, 200)];
        imageView.backgroundColor=[UIColor redColor];
        //显示截取的图
        imageView.image=[self cutCenterImage:[UIImage imageNamed:@"1.jpg"] size:CGSizeMake(200, 200)];
        [self.view addSubview:imageView];
       
       
    }
    #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;
    }

  • 相关阅读:
    EMV/PBOC解析(三) TLV格式解析(C#)
    写自己的WPF样式
    EMV/PBOC 解析(二) 卡片数据读取
    FLEX 图片拷贝
    重学浏览器(2)-进程间的交互
    重学浏览器(1)-多进程多线程的浏览器
    实现财务自由-《富爸爸穷爸爸》读书语句摘抄
    mini-css-extract-plugin简介
    egg.js路由的优雅改造
    node中异步IO的理解
  • 原文地址:https://www.cnblogs.com/zhibin/p/4137407.html
Copyright © 2020-2023  润新知