Помощь!
Я много искал и не нашел решения этой "простой" проблемы. То, что я пытаюсь сделать, это заменить белые пиксели альфа. Похоже, CGImageCreateWithMaskingColors
должен дать мне то, что я хочу, к сожалению, в любом случае он возвращает ноль. Вот мой код, что я делаю не так?
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, size.width, size.height, 8, 4 * size.width, colorSpace, kCGImageAlphaPremultipliedFirst);
//draw a black background
CGContextSetRGBFillColor(context,0,0, 0, 1);
CGContextFillRect(context, CGRectMake(0, 0, size.width, size.height));
char* text2 = (char *)[text cStringUsingEncoding:NSASCIIStringEncoding];
CGContextSelectFont(context, "Helvetica Bold", kFontSize, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
//draw text with the "alpha" color white)
CGContextSetRGBFillColor(context, 1, 1, 1, 1);
float textLength = 20;
CGContextShowTextAtPoint(context, (size.width/2)-(textLength/2), ((size.height/2)-(kFontSize/2))+5, text2, strlen(text2));
//create the black/white image
CGImageRef alphaMask = CGBitmapContextCreateImage(context);
const float colorMasking[6] = {0xEE, 0xFF, 0xEE, 0xFF, 0xEE, 0xFF};
CGImageRef imageMasked = CGImageCreateWithMaskingColors(alphaMask, colorMasking);
imageMasked
- это nil
, что бы я ни пытался. Буду признателен за любую помощь, вы можете предоставить, спасибо!