Как нарисовать в файл в Objective-C - PullRequest
0 голосов
/ 04 декабря 2011

Как я могу нарисовать изображение в target-c? все, что мне нужно сделать, это создать изображение с заданным размером, нарисовать несколько линий AA и сохранить изображение в png-файл. Я пытался найти его в Apple Docs, но есть CGImage, NSImage, CIImage и более. какой из них проще для моей цели? Мне нужно только поддерживать последнюю версию Mac OS X, поэтому новые вещи не проблема.

Ответы [ 2 ]

4 голосов
/ 04 декабря 2011

Вероятно, самый простой способ - использовать NSImage и рисовать прямо в него после вызова lockFocus.

Пример:

NSSize imageSize = NSMakeSize(512, 512);
NSImage *image = [[[NSImage alloc] initWithSize:imageSize] autorelease];
[image lockFocus];
//draw a line:
[NSBezierPath strokeLineFromPoint:NSMakePoint(100, 100) toPoint:NSMakePoint(200, 200)];
//...
NSBitmapImageRep *imageRep = [[[NSBitmapImageRep alloc] initWithFocusedViewRect:NSMakeRect(0, 0, imageSize.width, imageSize.height)] autorelease];
NSData *pngData = [imageRep representationUsingType:NSPNGFileType properties:nil];
[image unlockFocus];
[pngData writeToFile:@"/path/to/your/file.png" atomically:YES];
1 голос
/ 04 декабря 2011

Ну, на самом деле ваш вопрос - это два вопроса в одном.

Первый вопрос о том, как нарисовать изображение. Вы должны сначала прочитать документы о рисовании изображений. Apple имеет Руководство по рисованию какао на эту тему. Начните с того, чтобы рисовать изображения.

Затем вам нужно сохранить образ на диск. Вот хороший фрагмент кода здесь :

NSBitmapImageRep *bits = ...; // get a rep from your image, or grab from a view

NSData *data;
data = [bits representationUsingType: NSPNGFileType
             properties: nil];
[data writeToFile: @"/path/to/wherever/test.png"
      atomically: NO];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...