zoukankan      html  css  js  c++  java
  • 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是不同的

  • 相关阅读:
    POJ3040--Allowance(贪心)
    Deep work
    湾区公司上班第一周
    三个现场面试
    协商薪资
    调节情绪,精神愉悦,健康快乐
    Phone interview guide 多说
    Campus Bikes
    降低软件复杂度 和 写注释写总结 2019-10
    某厂在线测试 2019.09.26
  • 原文地址:https://www.cnblogs.com/zhhl/p/5685396.html
Copyright © 2011-2022 走看看