我的目标是在视图中显示一张图片。 考虑到我有:
- IBOutlet NSImageView *image 用于显示我的图片
- NSData *imageData 用于读取图片文件
- NSImage *imageView
图像数据存储在imageData中(我使用了initWithContentsOfFile方法)。
现在,如果我使用以下方式初始化imageView:
NSImage *imageView = [[NSImage alloc] initWithContentsOfFile:path];
我可以正确地看到图像的呈现,但这样做会从文件系统中读取两次。
如果我尝试:
NSImage *imageView = [[NSImage alloc] initWithData:imageData];
显示的图像非常小,像缩略图。
使用CGImageRef:
CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)imageData, NULL);
CGImageRef imageRef= CGImageSourceCreateImageAtIndex(imageSource, 0, nil);
NSImage *imageView = [[NSImage alloc] initWithCGImage:imageRef size:NSZeroSize];
图片渲染得太小了,如何以原始分辨率显示图片?