如何将PNG图像读取为NSImage

8

如何将PNG图像读取为NSImage。我尝试了以下方法,但当我获取图像的宽度和大小时,我得到了一些奇怪的值...如果有人能指导我正确的路径...非常感谢。

 NSImage * picture =  [[NSImage alloc] initWithContentsOfFile: [bundleRoot stringByAppendingString:tString]];

 NSLog(@"sixe %d %d",picture.size.width, picture.size.height);
 if( picture ){ 
  NSLog(@"Picture is not null"); 
 }else {
  NSLog(@"Picture is null.");
 }

谢谢


这似乎忽略了我的.png文件中的alpha通道。有没有办法保留它? - Alec Jacobson
2个回答

6

您加载图像的代码是正确的。

显示大小的代码不正确;NSSize的成员是CGFloat,应该使用%f格式字符串打印:

NSLog(@"size %f %f",picture.size.width, picture.size.height);

谢谢您的快速回复,请问您能告诉我如何将以下代码转换为Mac OS X吗?iPhone应用->使用UIKit CGRect rect = CGRectMake(offset.x * scale, offset.y * scale, scale * size.width, scale * size.height);UIGraphicsPushContext(ctx); [image drawInRect:rect]; UIGraphicsPopContext(); - Sam
1
请查看绘图指南(http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CocoaDrawingGuide/GraphicsContexts/GraphicsContexts.html)。它解释了如何获取图形上下文以及如何绘制图像。 - Laurent Etiemble

2
使用[NSImage imageNamed:tString]。tString应该是图像文件的基本文件名;不需要包含文件扩展名。

谢谢您的快速回复,您能告诉我如何将以下代码转换为Mac OS X?iPhone应用程序-->使用UIKit CGRect rect = CGRectMake(offset.x * scale, offset.y * scale, scale * size.width, scale * size.height);UIGraphicsPushContext(ctx); [image drawInRect:rect]; UIGraphicsPopContext(); - Sam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接