NSImage -initWithContentsOfFile返回大小为零的图像(0)

时间:2014-10-17 08:31:47

标签: objective-c macos cocoa nsimage

要加载图标图像,我在其中一种方法中使用以下代码:

NSLog(@"icon path: %@", iconPath);
NSImage *iconImage = [[NSImage alloc] initWithContentsOfFile:iconPath];
return iconImage;

从日志输出中可以清楚地看到正在从正确位置打开图像资源。我没有看到错误。然而,我打开的tif文件在调试器中显示为空NSSize(宽度= 0,高度= 0),并在屏幕上显示,就好像我指向一些失控的内存段。

标志主要设置为0.例外是colorMatchPreferred和multipleResolutionMatching设置为1.

Reps指向包含两(2)个位图表示的数组(NSArrayM *)(NSBitmapImageRep条目)。

请告诉我我做错了什么!

谢谢

1 个答案:

答案 0 :(得分:0)

//to get image original size use this code

NSArray * imageReps = [NSBitmapImageRep imageRepsWithContentsOfFile:fileUrl];  
        NSInteger width = 0;
        NSInteger height = 0;

        for (NSImageRep * imageRep in imageReps)
        {
            if ([imageRep pixelsWide] > width)
                width = [imageRep pixelsWide];
            if ([imageRep pixelsHigh] > height)
                height = [imageRep pixelsHigh];
        }