用图像掩盖图像?
不要使用代码:
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图像创建函数之一创建的图像。
用作掩码的图像的源样本(但不是石英图像掩码)用作alpha值。 ....在这种情况下,假定图11-6中显示的图像是使用Quartz图像创建函数之一创建的,例如CGImageCreate。
但不起作用......嗯
日志信息myImageMask:
宽度:440
身高:292
BitsPerComponent:8
BitsPerPixel:8
BytesPerRow:440
BitmapInfo:0
ColorSpace:(kCGColorSpaceICCBased; kCGColorSpaceModelMonochrome;点增益20%)
RenderingIntent:2
唯一可能导致问题的是在以下行中将myImage
为null
。 休息所有代码看起来不错。
localResultImage = CGImageCreateWithMask(myImage, localMaskImage);
如果myImage是类UIImage的对象,那么你应该使用下面的行:
localResultImage = CGImageCreateWithMask([myImage CGImage], localMaskImage);
链接地址: http://www.djcxy.com/p/46527.html