iOS CGImageCreateWithImageInRe

作者: Python数据分析实战 | 来源:发表于2016-12-09 21:33 被阅读378次

    在开发中,有时设计师会给我们一个大图片(有若干规则小图片组成),让我们做分开处理并使用
    至于为什么要给我们大图片:
    001、省空间,一张大图片肯定比若干小图片省空间
    002、设计师也方便作图,做一张要比若干张省事

    如图:

    Bank.png
    BankList.png

    我们在还使用时就需要将其分开,单独拿来使用
    使用 CGImageCreateWithImageInRect 进行剪切处理
    我已经做成了一个小方法,会在最后给出链接,只需要导入,调用即可,我说一下处理步骤
    001、将大图做成UIImage已方便取值和处理

     // 从大图片裁剪对应的小图片
    UIImage *bigImage = [UIImage imageNamed:bigImageName];
    

    002、规则的小图片的宽和高

     // 小图形的宽
    CGFloat smallW = bigImage.size.width / 横向小图标个数 ;
     // 小图形的高
    CGFloat smallH = bigImage.size.height / 竖向小图标个数 ;
    

    003、确定小图标的位置

    CGRect smallRect = CGRectMake(X, Y, smallW, smallH);
    

    004、获取小图片并转为UIImage

    // CGImageCreateWithImageInRect  获取小图片
    CGImageRef smallImageRef = CGImageCreateWithImageInRect(bigImage.CGImage, smallRect);
    
    // 将图片转为UIImage
    UIImage* smallImage = [UIImage imageWithCGImage: smallImageRef];
    

    使用实例:

    屏幕快照 2016-12-09 20.39.56.png
    屏幕快照 2016-12-09 20.41.55.png

    点击下载Demo
    使用方法:
    001、导入文件:
    #import "YoungCutImage.h"
    002、调用类方法,用UIImage接收返回值
    #pragma mark X:横向第几个 Y:竖向第几个 wideCount:横向小图标的个数 heightCount:纵向小图标的个数
    +(UIImage *)cutBigImageName:(NSString *)bigImageName wide_X:(CGFloat)X heigh_Y:(CGFloat)Y wideCount:(CGFloat)wideCount heightCount:(CGFloat)heightCount;

    方法调用示例:

    UIImage *bankImage = [YoungCutImage cutBigImageName:@"BankList" wide_X:0 heigh_Y:indexPath.row wideCount:1 heightCount:3];
    

    点击下载Demo

    相关文章

      网友评论

        本文标题:iOS CGImageCreateWithImageInRe

        本文链接:https://www.haomeiwen.com/subject/hhdymttx.html