J'ai une application de retouche d'image, qui travaille à 10.10, mais en 10.11 un bug est venuCGLayerRef se révèle vide uniquement dans OS X 10.11 (El Capitan)
Quand je regarde un CIImage
créé w/-imageWithCGLayer
, il montre comme une image vide (de la taille correcte) que dans 10,11
CGSize size = NSSizeToCGSize(rect.size);
size_t width = size.width;
size_t height = size.height;
size_t bitsPerComponent = 8;
size_t bytesPerRow = (width * 4+ 0x0000000F) & ~0x0000000F; // 16 byte aligned is good
size_t dataSize = bytesPerRow * height;
void* data = calloc(1, dataSize);
CGColorSpaceRef colorspace = [[[_imageController document] captureColorSpace] CGColorSpace];
CGContextRef bitmapContext = CGBitmapContextCreate(data, width, height, bitsPerComponent, bytesPerRow, colorspace, kCGImageAlphaNone | kCGBitmapByteOrder32Host);
CGLayerRef canvasLayer = CGLayerCreateWithContext(bitmapContext, scaledRect.size, NULL);
[self drawCanvasInLayer:canvasLayer inRect:scaledRect];
CIImage *test = [CIImage imageWithCGLayer:canvasLayer];
NSLog(@"%@",test);
Alors, quand je vois CIImage *test
sur 10.10, il semble précisément que je le veux. Le 10.11, il s'agit d'une image vide de la même taille. J'ai essayé de regarder les différences API pour CGLayer & CIImage mais la documentation est trop dense pour moi. Est-ce que quelqu'un d'autre a trébuché sur ce problème? J'imagine que cela doit être quelque chose avec l'initialisation du CGContextRef
, parce que tout le reste dans le code est lié à la taille
Informez-vous sur les forums des développeurs Apple, idiot. –
Je ne l'ai jamais fait avant D: mais vous avez raison de juste demander à SO. fera rapport –