2

コードを使用しないでください:

    CGImageRef localResultImage;
    CGImageRef localMaskImage;

    size_t width = CGImageGetWidth(myImageMask);
    size_t height = CGImageGetHeight(myImageMask);
    size_t bitsPerComponent = CGImageGetBitsPerComponent(myImageMask);
    size_t bitsPerPixel = CGImageGetBitsPerPixel(myImageMask);
    size_t bytesPerRow = CGImageGetBytesPerRow(myImageMask);
    CGDataProviderRef provider = CGImageGetDataProvider(myImageMask);
    CGBitmapInfo bitmapInfo = CGImageGetBitmapInfo(myImageMask);
    CGColorSpaceRef space = CGImageGetColorSpace(myImageMask);
    CGColorRenderingIntent intent = CGImageGetRenderingIntent(myImageMask);

    localMaskImage = CGImageCreate(width,
                                   height,
                                   bitsPerComponent,
                                   bitsPerPixel,
                                   bytesPerRow,
                                   space,
                                   bitmapInfo,
                                   provider,
                                   NULL,
                                   TRUE,
                                   intent);

    localResultImage = CGImageCreateWithMask(myImage, localMaskImage);

    CGContextDrawImage(myContext, dirtyRect, localResultImage);

localResultImage = (null) - なぜ?

ドキュメント Apple: CGImageMaskCreate 関数を使用して作成されたイメージ マスクを渡す代わりに、Quartz イメージ作成関数の 1 つから作成されたイメージを提供します。

マスクとして使用される (Quartz イメージ マスクではない) イメージのソース サンプルは、アルファ値として機能します。.... この場合、CGImageCreate などの Quartz 画像作成関数の 1 つを使用して、図 11-6 に示す画像が作成されたとします。

動作しません...うーん

ログ情報 myImageMask:
幅: 440
高さ: 292
BitsPerComponent: 8
BitsPerPixel: 8
BytesPerRow: 440
BitmapInfo: 0
ColorSpace: (kCGColorSpaceICCBased; kCGColorSpaceModelMonochrome; ドット ゲイン 20%)

RenderingIntent: 2

4

1 に答える 1

0

問題を引き起こす可能性がある唯一のことは、次の行のようにするmyImageことです。null残りのすべてのコードは良さそうです。

localResultImage = CGImageCreateWithMask(myImage, localMaskImage);

myImage がクラス UIImage のオブジェクトである場合、以下の行を使用する必要があります。

localResultImage = CGImageCreateWithMask([myImage CGImage], localMaskImage);
于 2013-06-10T16:39:31.930 に答える