Как создать NSImage с определенным разрешением и определенным размером в мм
Я новичок в цели-C и программирование какао. Я пытаюсь создать изображение высотой 128 мм и шириной 128 мм с разрешением 300 точек на дюйм.
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];
1 ответ
Ваш вопрос несколько сбивает с толку, поскольку вы заявляете, что хотите получить квадратное изображение (128 x 128 мм), а затем пытаетесь создать прямоугольное изображение (1512 x 756pts).
Гадание: кажется, вам может понадобиться понять разницу между NSImage
и NSImageRep
и как они взаимодействуют. Прочитайте руководство Apple по рисованию какао, в частности раздел " Изображения ". Вы можете найти подраздел " Размер изображения и разрешение", чтобы установить картинку (без каламбура;-)).
Другая область, на которой вы можете прочитать, - это печать - для этого часто требуется создание изображений с разрешением 300 точек на дюйм.
НТН