Я не очень хорошо понимаю предварительно умноженную альфу.
Мне нужен NSBitmapImageRep без альфа-канала (мне не нужен конкретный bpp).
Моя проблема в том, что этот код выдаёт мне ошибки:
NSSize imageSize = NSMakeSize(200, 200);
//create a non-alpha RGB image rep with the same dimensions as the image
NSBitmapImageRep* bitmap = [[NSBitmapImageRep alloc]
initWithBitmapDataPlanes:NULL
pixelsWide:imageSize.width
pixelsHigh:imageSize.height
bitsPerSample:8
samplesPerPixel:3
hasAlpha:NO
isPlanar:NO
bitmapFormat:NSAlphaNonpremultipliedBitmapFormat
bytesPerRow:(3 * imageSize.width)
bitsPerPixel:24];
//lock focus on the bitmap
NSGraphicsContext *context = [NSGraphicsContext graphicsContextWithBitmapImageRep:bitmap];
[NSGraphicsContext saveGraphicsState];
[NSGraphicsContext setCurrentContext:context];
//draw the image into the bitmap
[prueba drawAtPoint:NSMakePoint(0, 0) withAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSFont systemFontOfSize:24], NSFontAttributeName, nil]];
[NSGraphicsContext restoreGraphicsState];
//get the TIFF data
NSData* tiffData = [bitmap TIFFRepresentation];
//do something with TIFF data
NSError *error = nil;
[tiffData writeToFile:@"/Users/Paul/test.tif" options:NSDataWritingAtomic error:&error];
Ошибка: CGBitmapContextCreate: неподдерживаемая комбинация параметров: 8 целых бит / компонент; 24 бит / пиксель; 3-х компонентное цветовое пространство; kCGImageAlphaNone; 640 байт / строка.
Хорошо, я знаю, что эта комбинация не поддерживается, но мне нужно что-то подобное, и я не нахожу решения.