//官方文档:https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_images/dq_images.html
步骤:
创建文件继承UIView就行
实现 - (void)drawRect:(CGRect)rect 方法
#import "TLLView.h"
@implementation TLLView
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
UIImage * backimage = [UIImage imageNamed:@"image1"];
CGRect imageRect = CGRectMake(50, 100, 300, 200);
drawImage(context, [backimage CGImage], imageRect);
UIImage * foreImage = [UIImage imageNamed:@"image2.jpg"];
CGContextSetBlendMode(context, kCGBlendModeColorDodge);
drawImage(context, [foreImage CGImage], CGRectMake(50, 100, 50, 50));
// PS:先画image1与先画image2 的效果是不一样的; drawImage 方法是为了将图片画正,不然直接画出的图片是倒着的(有兴趣可以去研究);
}
void drawImage(CGContextRef context, CGImageRef image , CGRect rect){
CGContextSaveGState(context);
CGContextTranslateCTM(context, rect.origin.x, rect.origin.y);
CGContextTranslateCTM(context, 0, rect.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextTranslateCTM(context, -rect.origin.x, -rect.origin.y);
CGContextDrawImage(context, rect, image);
CGContextRestoreGState(context);
}
效果如下:
image1:
image2:
效果图: