IOS圖片剪切代碼

pwmd 9年前發布 | 2K 次閱讀 Objective-C IOS

我們常常需要將一個方形圖片剪切成圓形,或者從某個大圖里面獲得一部分,這些時候我們通常用剪切。

裁剪相當于一種屬性,減掉前面繪制的圖形以外的區域。所以我們裁剪過之后通常要恢復以前的繪圖狀態

此時我們一般分以下三步:

①保存當前的上下文狀態

 CGContextSaveGState(ctr);

②在繪制好一些區域以后,進行裁剪

 CGContextClip(ctr);

③恢復裁剪之前的上下文狀態

CGContextRestoreGState(ctr);

    //剪成圓形圖片
void drawClipImage(CGRect rect,CGContextRef ctr)
{
//裁剪之前我們通常要保存一下當前的狀態
CGContextSaveGState(ctr);
CGContextAddEllipseInRect(ctr, CGRectMake(rect.size.width/3, 0, rect.size.width/3, rect.size.height/4));
CGContextAddRect(ctr, CGRectMake(100, 200, 100, 200));

    //裁剪相當于一種屬性,減掉前面繪制的圖形以外的區域  
    CGContextClip(ctr);  

    CGContextStrokePath(ctr);  

    UIImage *image = [UIImage imageNamed:@"1"];  
    [image drawInRect:CGRectMake(0, 0, rect.size.width, rect.size.height)];  
    //恢復之前的上下文狀態  
    CGContextRestoreGState(ctr);  

}  </pre> 


 本文由用戶 pwmd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!