1

不規則な形状の画像を作成するのに問題があります。これは私のフレームの例です。

奇妙な形状の 2 つの部分を含むフレーム

このような画像を作成するためのアイデアを教えてください。2 つの異なるフレームに 2 つの画像が含まれています。しかし、両方の画像は、フレームに収まった後、その一部を隠しています。

4

3 に答える 3

0

元の画像の一部をマスクするマスク画像を作成する必要があります.UIImageViewをマスクする方法を見てみてください...

于 2012-07-05T11:03:30.653 に答える
0

マスクを使用できます:

- (UIImage*) maskImage:(UIImage *)image withMask:(UIImage *)maskImage
{
    CGImageRef maskRef = maskImage.CGImage; 

    CGImageRef mask = CGImageMaskCreate(CGImageGetWidth(maskRef),
                                    CGImageGetHeight(maskRef),
                                    CGImageGetBitsPerComponent(maskRef),
                                    CGImageGetBitsPerPixel(maskRef),
                                    CGImageGetBytesPerRow(maskRef),
                                    CGImageGetDataProvider(maskRef), NULL, false);

    CGImageRef masked = CGImageCreateWithMask([image CGImage], mask);

    return [UIImage imageWithCGImage:masked];
}
  • 画像はオリジナル画像です。
  • maskImage は白黒画像です。maskImage が黒の場合、元の画像が表示されます。
于 2012-07-05T11:07:01.300 に答える
0

imagview の画像をマスクするには、縁取りされた画像が必要です。今これを行います:

 #import <QuartzCore/QuartzCore.h>
 // remember to include Framework as well

CALayer *mask = [CALayer layer];
mask.contents = (id)[[UIImage imageNamed:@"bordered_image_mask.png"] CGImage]; // here bordered image
mask.frame = CGRectMake(5, 5, <img_width>, <img_height>); // here x and y is 5 to show white boder around like in image
yourImageView.layer.mask = mask;
yourImageView.layer.masksToBounds = YES;
于 2012-07-05T11:35:49.887 に答える