2012-02-29 7 views
7

私はCGContextを使っていくつかの描画をしています。CGPathRefでCGContextをマスキングしますか?

UIImage * myImage = [UIImage imageNamed:@"frame.png"]; 
CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextClipToMask(context, self.view.bounds, myImage.CGImage); 

これはうまく動作しますが、今、私は私のマスクとして、既存のCGPathRefを使用したい:私は現在、このようなPNGファイルを使用して描画をマスキングしています。 上記のようにCGPathRefをUIImageとマスクに変換してみてください。 もしそうなら、私はどのように変換を行うつもりですか? - または - これにアプローチするより良い方法はありますか?

答えて

10
CGContextAddPath(context, yourPath); 
CGContextClip(context); 
+1

これは、矩形と楕円に適しています。しかし、addArcWithCenterによってパスが作成されている場合、私のためには機能しません:radius:...そして、私は1つのピクセルラインだけを保持する必要があるとき。 –

+0

クリップしたくない場合はどうすればいいですか?たとえば、画像のカスタムパスをパスの境界にクリッピングせずにマスクしたい場合は? @cxa –