Преобразование CIImage В NSImage

Я играю с основной структурой изображений. Как я понимаю, если у меня есть изображение (NSImage), он должен быть преобразован в CIImage, первый. Я могу это сделать.

NSImage *im1 = [[NSImage alloc] initWithContentsOfFile:imagepath];
NSRect rect1;rect1.size.width = img1.size.width; rect1.size.height = img1.size.height;
CGImageRef imageRef1 = [img1 CGImageForProposedRect:&rect1 context:[NSGraphicsContext currentContext] hints:nil];
CIImage *ciimage = [CIImage imageWithCGImage:imageRef1];

У меня есть функция, которая применяет фильтр изображения ядра к изображению ядра (CIImage), который я хочу проверить. И я хочу добавить выходное изображение в окно в качестве подвида. Поэтому мне нужен NSImage. Как я могу преобразовать это основное изображение обратно в NSImage? Если я спрошу Google, я не получить хорошие результаты.

Спасибо за помощь.

2 ответов


Я не проверял, но я думаю, что это должно сделать это:

CIImage *ciImage = ...;

NSCIImageRep *rep = [NSCIImageRep imageRepWithCIImage:ciImage];
NSImage *nsImage = [[NSImage alloc] initWithSize:rep.size];
[nsImage addRepresentation:rep];

В Swift:

var rep: NSCIImageRep = NSCIImageRep(ciImage: gaussianBlurFilter.outputImage)
var nsImage: NSImage = NSImage(size: rep.size)
nsImage.addRepresentation(rep)