这是要求:
输入是一个PNG A和一个PNG B,输出应该是PNG A减去PNG B(在PNG A上挖一个带有PNG B形状的洞)。我认为这应该是一个平局补充行动,我需要一些库或框架来做到这一点。
该框架应与 Xcode 一起使用,也可以用于各种植物形式(MAC/iOS/Win...等)。所以我认为应该用C/C++来实现。
任何示例或代码都应该是我的问题的主要优点......我真的不知道该怎么做:(
有什么建议么?
这是要求:
输入是一个PNG A和一个PNG B,输出应该是PNG A减去PNG B(在PNG A上挖一个带有PNG B形状的洞)。我认为这应该是一个平局补充行动,我需要一些库或框架来做到这一点。
该框架应与 Xcode 一起使用,也可以用于各种植物形式(MAC/iOS/Win...等)。所以我认为应该用C/C++来实现。
任何示例或代码都应该是我的问题的主要优点......我真的不知道该怎么做:(
有什么建议么?
你可以试试这段代码:
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();
您可以使用掩码来执行此操作。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];
}