首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取与NSImage一起分配的NSData大小

获取与NSImage一起分配的NSData大小
EN

Stack Overflow用户
提问于 2011-06-01 02:34:04
回答 2查看 1.4K关注 0票数 0
代码语言:javascript
复制
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)

我需要它,确定它是一个景观或肖像图像,然后我做各种转换。

这很管用但我不知道为什么?

代码语言:javascript
复制
NSArray *representation = [testImages representations];
NSImageRep *repOne = [representation objectAtIndex:0];
int width = [repOne pixelsWide];
return width;
EN

回答 2

Stack Overflow用户

发布于 2011-06-01 03:15:25

NSImage类中,我们确实有属性,这给出了NSImage中图像的大小。

代码语言:javascript
复制
- (NSSize)size
   NSSize size = testImages.size;
票数 0
EN

Stack Overflow用户

发布于 2011-06-01 06:57:25

"...but testImages大小返回(0,0)“

始终要考虑,在代码中的某个时候,是否有某个方法或调用返回了您没有预料到的nil。然后向后走,找出您的代码(或假设)出错的地方。

代码语言:javascript
复制
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:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6195641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档