您的位置:首页 > 其它

利用Quartz2D,将一张图片画到一个特殊形状的背景图片上

2015-09-02 14:17 375 查看
- (void)drawRect:(CGRect)rect{

    //0.加载图片
   
UIImage *img = [UIImage
imageNamed:@"show"];
   
UIImage *bg = [UIImage
imageNamed:@"bg"];

    

    //1.获得图片的尺寸
   
CGFloat imgW = img.size.width;
   
CGFloat imgH = img.size.height;

    //2.获取上下文

    CGContextRef ctx =
UIGraphicsGetCurrentContext();

    

    //3.颠倒坐标系

    //3.1.整个绘图区域向下移动(移动的高度是绘制区域的高度)

    CGContextTranslateCTM(ctx,
0, rect.size.height);

    //3.2.让绘图区域围绕(绘制区域的X轴翻转)

    CGContextScaleCTM(ctx,
1, -1);

    //4.绘制图片
   
CGRect frame = CGRectMake(20,
20, imgW, imgH);

    //4.1绘制背景图片

    //CGContextClipToMask:裁剪指定的区域作为后续的绘图范围,图片的作用就是在指定的

    //区域做一个标记,后续绘图内容超出这个图片范围的内容被裁剪掉
   
CGContextClipToMask(ctx, frame, bg.CGImage);

    //4.2绘制需要显示的图片
   
CGContextDrawImage(ctx, frame, img.CGImage);

    

    //5.渲染

    CGContextStrokePath(ctx);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: