Я пытаюсь выполнить следующую пакетную обработку:
- загрузить изображение
- масштабировать
- добавить к нему скругленную границу
- сохранить новый
изображение в формате PNG
Пока я придумал это:
CGPoint center = CGPointMake(self.window.frame.size.width / 2., self.window.frame.size.height / 2.);
[[NSGraphicsContext currentContext] setImageInterpolation:NSImageInterpolationHigh];
NSImage * newThumbnail = [[NSImage alloc] initWithData:[NSData dataWithContentsOfURL:[files objectAtIndex:0]]];
NSImageView *imageView = [[NSImageView alloc] initWithFrame:CGRectMake(center.x - (57/2.), center.y - (80/2.), 57, 80)];
[imageView setWantsLayer:YES];
imageView.layer.borderColor = [[NSColor blackColor] CGColor];
imageView.layer.cornerRadius = 4;
imageView.layer.masksToBounds = YES;
imageView.layer.borderWidth = 1.0;
imageView.image = newThumbnail;
А теперь я думаю, что мне не хватает, чтобы слой перерисовывался в некоторый контекст?
может быть, что-то вроде [imageView.layer drawInContext: some context (NS o CG?)];
и сохранение этого контекста на диск. Но я в замешательстве:
в каком контексте,
переходить ли из контекста в NSData на диск,
или если мне нужно промежуточное изображение где-то перед сохранением.
В основном, между CALayers и CGLayers и объектами NS и объектами пользовательского интерфейса (я знаю, что я здесь в OS X Cocoa, и это не UIKit, и я также пока не использую CG), я понятия не имею, как включить выше в png.