2015-12-18 8 views
-1

Я новичок в программировании объектива-c и какао. Я пытаюсь создать изображение размером 128 мм в высоту и 128 мм в ширину с разрешением 300 DPI.Как сгенерировать NSImage с определенным разрешением и конкретным размером в мм

NSString * image = [[NSImage alloc] initWithSize: NSMakeSize (1512, 756)];

В приведенной выше строке кода 1512 и 756 рассматриваются как точки. Поэтому я не могу преобразовать его в то, что мне нужно. Он создает изображение с размером (3024 * 1512).

Не могли бы вы предложить что-то ... Заранее спасибо.

Вот код, который я пытался

NSImage *image = [[NSImage alloc] initWithSize:NSMakeSize(2268, 2268)]; 
[image lockFocus]; 
// Draw Something 
[image unlockFocus]; 
NSString* pathh = @"/Users/abcd/Desktop/Images/1234.bmp"; 

CGImageRef cgRef = [image CGImageForProposedRect:NULL 
               context:nil 
                hints:nil]; 
     NSBitmapImageRep *newRep = [[NSBitmapImageRep alloc] initWithCGImage:cgRef]; 


     NSSize copySize; // To change to 600 DPI 
     copySize.width = 600 * [newRep pixelsWide]/72.0; 
     copySize.height = 600 * [newRep pixelsWide]/72.0; 
     [newRep setSize:copySize]; //This input is not working 
     NSData *pngData = [newRep representationUsingType:NSBMPFileType properties:nil]; 
     [pngData writeToFile:pathh atomically:YES]; 

ответ

0

Ваш вопрос несколько запутанным, как вы утверждаете, вы хотите квадратное изображение (128 х 128мм), а затем попытаться построить прямоугольный один (1512 х 756pts).

Угадай: кажется, вам может понадобиться понять разницу между NSImage и NSImageRep и как они взаимодействуют. Прочтите руководство Apple Руководство по рисованию какао, в частности Фотографии раздел. Вы можете найти в подразделе Image Size and Resolution справку для установки изображения (без каламбура ;-)).

Другая область, которую вы можете прочитать, это печать - для этого часто требуется генерация изображений 300 точек на дюйм.

HTH

+0

Благодаря CRD для ваших входов. Мой вопрос: я хочу создать квадратное изображение (128 x 128 мм) с 300 DPI. Это все. Остальные вещи - все о том, что я пробовал. Не могли бы вы рассказать мне, как создать квадратное изображение (128 x 128 мм)? – A2212007

+0

Что вы пробовали после прочтения ссылок и других материалов? Измените вопрос, чтобы показать код, который вы создали и т. Д., И то, что вы сейчас застряли. С этой информацией кто-то может помочь вам. – CRD

+0

CRD, я добавил то, что я пробовал. Не могли бы вы вернуться? – A2212007