NSImage *testImages;
NSURL *testImageUrl = [NSURL URLWithString:@"file:///foo/testImage.png"];
NSData *imageData = [testImageUrl resourceDataUsingCache:NO];
testImages = [[NSImage alloc] initWithData:imageData ];我如何得到NSSize of testImages。在调试器中,我可以从_NSSize属性读取它,但是testImages大小返回(0,0)
我需要它,确定它是一个景观或肖像图像,然后我做各种转换。
这很管用但我不知道为什么?
NSArray *representation = [testImages representations];
NSImageRep *repOne = [representation objectAtIndex:0];
int width = [repOne pixelsWide];
return width;发布于 2011-06-01 03:15:25
在NSImage类中,我们确实有属性,这给出了NSImage中图像的大小。
- (NSSize)size
NSSize size = testImages.size;发布于 2011-06-01 06:57:25
"...but testImages大小返回(0,0)“
始终要考虑,在代码中的某个时候,是否有某个方法或调用返回了您没有预料到的nil。然后向后走,找出您的代码(或假设)出错的地方。
NSURL *testImageUrl = [NSURL URLWithString:@"file:///foo/testImage.png"];
NSData *imageData = [testImageUrl resourceDataUsingCache:NO];
NSImage *testImages = [[NSImage alloc] initWithData:imageData ];
NSSize size = [testImages size];如果由于某种原因,URLWithString:调用失败,它将返回nil。将-resourceDataUsingCache:消息发送给nil基本上会导致nil (它只是被忽略)。尝试使用传入数据参数的NSImage创建nil将返回nil。将-size消息发送给nil基本上会导致nil,这将等于{0, 0}的大小。
所以,再检查一遍,以确保你的信息不只是被发送到零。
不过,您通常在创建基于文件的NSURLs时使用NSURL,在创建其他类型的URL时使用+URLWithString:。
https://stackoverflow.com/questions/6195641
复制相似问题