0

画像をマスクするために CAShapeLayer を使用しましたが、マスクした部分だけを取得したいと考えています。取得すると、完全な画像しか取得できません。

Can anyone please provide me some code/information regarding this ?

CAShapeLayer *maskLayer = [CAShapeLayer layer];

 maskLayer.frame = CGRectMake(0, 0, clippingPath.bounds.size.width, clippingPath.bounds.size.height) ; 
 maskLayer.path = [clippingPath CGPath];
 maskLayer.fillColor = [[UIColor blackColor] CGColor];
 maskLayer.backgroundColor = [[UIColor clearColor] CGColor];


 [ imgView removeFromSuperview ] ;
 imgView.layer.mask = maskLayer ;

Thanks in advance :)

4

1 に答える 1

1

ACALayerは表示のみで、実際に画像自体を変更するわけではありません。

画像をマスクするには、Quartz 2D 描画を使用するか、CoreImage フレームワークからCIFilter/を使用して、自分で作成する必要があります。CIImage

Core Graphics (Quartz 2D) を使用して画像をマスクするには、と を使用CGImageCreateWithMaskCGImageMaskCreateます。これらの関数を使用すると、一方の画像を他方の内容でマスクできます。マスクするためにベジエ パスを使用するようになったので、元の画像をマスクできるようにするには、まずそのパスを画像にレンダリングする必要があります。

CoreImage を使用して画像をマスクするには、CIBlendWithMaskフィルターを見てください。

于 2013-05-24T09:22:27.107 に答える