使用NSUrl时图像已调整大小

时间:2015-07-03 09:09:12

标签: objective-c macos

我正在开发一个OSX应用程序而我正在尝试从NSUrl获取图像。它效果很好,但是对于一些图像(不是每个图像),尺寸都不好。

例如,我试图从NSUrl获取1600 * 1200图像,但是当我获取值时,我得到的结果是384 * 288,因此质量会降低。 但是每个图像上都没有这个错误。

我用PNG和JPG尝试了这个,结果是一样的,有些是调整大小的,有些则不是。

我不希望调整图像大小,因为质量是我主要考虑的因素。

这是我的代码:

 - (IBAction)loadImageAction:(id)sender {
    NSArray* fileTypes = [[NSArray alloc] initWithObjects:@"jpg",@"png", nil];
    NSOpenPanel *panel = [NSOpenPanel openPanel];
    [panel setCanChooseFiles:YES];
    [panel setCanChooseDirectories:NO];
    [panel setAllowsMultipleSelection:NO];
    [panel setAllowedFileTypes:fileTypes];

    NSInteger clicked = [panel runModal];
    if (clicked == NSFileHandlingPanelOKButton) {
        for (NSURL *url in [panel URLs]) {
            NSImage *img = [[NSImage alloc] initWithContentsOfURL:url];
            NSLog(@"IMAGE FROM URL : image.width = %f, image.height = %f", img.size.width, img.size.height);
            if (img != nil) {
                [_imageView setImage:img]; // just a NSImageView to display the image
            }
        }
    }
}

0 个答案:

没有答案