-1

我是 Objective-C 和可可编程的新手。我正在尝试生成高度为 128 毫米、宽度为 128 毫米、分辨率为 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];
4

1 回答 1

0

当您声明您想要一个方形图像(128 x 128mm)然后尝试构建一个矩形图像(1512 x 756pts)时,您的问题有些令人困惑。

猜测:看来您可能需要了解 anNSImage和 an之间的区别NSImageRep以及它们如何交互。阅读 Apple 的Cocoa 绘图指南,尤其是图像部分。您可能会发现图像大小和分辨率小节有助于设置图片(不是双关语;-))。

您可以阅读的另一个领域是打印——这通常需要生成 300dpi 的图像。

HTH

于 2015-12-18T19:46:27.390 回答