我想我在这里缺少一些基本的东西。如果我使用我知道存在的法律URL/路径来执行此操作:

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

然后我向控制台报告宽度为-2080177216和0.。尽管我知道宽度实际上是50,高度为50。我尝试调用Isvalid,它返回是的,我也尝试检查检查的大小首先表示,它返回了相同的混乱值。该图像如何无法正确加载?

有帮助吗?

解决方案

size 方法返回 NSSize, ,一个结构 widthheight 成员是类型 float. 。你把他们当作 int. 。采用 %f 一切都应该很好。

其他提示

这有帮助吗?

setSize:

设置图像的宽度和高度。

- (void)setSize:(NSSize)aSize

讨论:

必须在使用Nsimage对象的大小之前设置它。如果添加图像表示时尚未设置图像的大小,则从图像表示的数据中获取大小。对于EPS图像,大小是从图像的边界框中取的。对于TIFF图像,大小取自ImageLength和ImageWidth属性。

使用NSIMAGE的大小有效地调整了图像大小。更改尺寸会使所有缓存无效,并释放它们。当图像是下一个组合时,所选的表示形式将在屏幕外窗口中绘制自身以重新创建缓存。

Mac OS X V10.0及更高版本中可用的可用性。也可以看看

nsimage尺寸不是一些图片的实际尺寸吗?

您需要通过Nsimagerep迭代并设置最大发现的大小。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top