我是Objective-c和cocoa编程的新手。我正在尝试生成高128mm,宽128mm,分辨率为300 DPI的图像。
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 :(得分:0)
你的问题有些令人困惑,因为你声明你想要一个正方形图像(128 x 128mm),然后尝试构建一个矩形图像(1512 x 756pts)。
猜测:您可能需要了解NSImage
和NSImageRep
之间的区别以及它们之间的互动方式。阅读Apple的 Cocoa绘图指南,特别是 Images 部分。您可能会发现Image Size and Resolution小节有助于设置图片(没有双关语; - ))。
您可以阅读的另一个领域是打印 - 这通常需要生成300dpi图像。
HTH