2011-11-19 66 views
3
只选择UIView的一部分

我已在为一个UIView转换成UIImage的如何转换到UIImage的

+(UIImage*) createUIImageFromView:(UIView *)view frame:(CGRect)frame; 
{ 
    if (UIGraphicsBeginImageContextWithOptions != NULL) 
    { 
     UIGraphicsBeginImageContextWithOptions(frame.size, NO, 2.0f); 
    } 
    else 
    { 
     UIGraphicsBeginImageContext(view.frame.size); 
    } 

    [view.layer renderInContext:UIGraphicsGetCurrentContext()];  
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return image; 
} 

但是下面,我只能选择图像的大小,但在UIView的不是哪里应该被转换成图像。例如,如果我想转换矩形CGRect(10,10,20,20)而不是整个UIView,我该如何做?

+0

我认为你可以在整体获得图像后进行裁剪。使用CGImage函数可以轻松完成。 – bealex

回答

4

您可以在您的上下文中设置coordinate transformation matrix。这允许你改变坐标系,所以当图层在(0,0)处绘制时,它实际上会渲染上下文中的其他地方。 CGContext文档的Transforming User Space部分记录了您想用于实际修改CTM的功能。