objective-ccocoansimagensimagerep

NSImage size is wrong


I think i'm missing something really basic here. If I do this with a legal URL/path which I know exists:

NSImage* img = [[NSImage alloc] initWithContentsOfFile:[[selectedItem url] path]];
NSLog(@"Image width: %d height: %d", [img size].width, [img size].height);

then I get reported to the console that the width is -2080177216 and the height 0. Although I know that the width is actually 50 and the height 50. I tried calling isValid and it returns YES, and I also tried checking the size of the first representation and it returned the same messed up values. How come the image is not loading properly?


Solution

  • The size method returns an NSSize, a struct whose width and height members are of type float. You're treating them as int. Use %f and everything should be fine.