0

这是要求:

  1. 输入是一个PNG A和一个PNG B,输出应该是PNG A减去PNG B(在PNG A上挖一个带有PNG B形状的洞)。我认为这应该是一个平局补充行动,我需要一些库或框架来做到这一点。

  2. 该框架应与 Xcode 一起使用,也可以用于各种植物形式(MAC/iOS/Win...等)。所以我认为应该用C/C++来实现。

  3. 任何示例或代码都应该是我的问题的主要优点......我真的不知道该怎么做:(

有什么建议么?

4

2 回答 2

2

你可以试试这段代码:

UIImage *imgA = [UIImage imageNamed:@"pngA.png"];
UIImage *imgB = [UIImage imageNamed:@"pngB.png"];

UIGraphicsBeginImageContextWithOptions(imgA.size, NO, imgA.scale);
[imgA drawAtPoint:CGPointZero];
[imgB drawAtPoint:CGPointZero blendMode:kCGBlendModeDestinationOut alpha:1.0f];
UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
于 2012-04-19T06:25:29.953 回答
0

您可以使用掩码来执行此操作。http://iosdevelopertips.com/cocoa/how-to-mask-an-image.html

试试下面的代码:

- (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];
}
于 2012-04-19T10:10:22.787 回答