从 NSData 显示 NSImage
我的目标是在视图中显示图像。 考虑到我有一个:
- IBOutlet NSImageView *image 用于显示我的图像
- NSData *imageData 用于读取图像文件
- NSImage *imageView
在 imageData 中存储图像(我使用了 initWithContentsOfFile 方法)。
现在,如果我用以下方法初始化 imageView:
NSImage *imageView = [[NSImage alloc] initWithContentsOfFile:path];
我可以正确地看到图像的渲染,但通过这种方式,我从文件系统读取两次。
如果我尝试:
NSImage *imageView = [[NSImage alloc] initWithData:imageData];
显示的图像非常小..像拇指
Whit CGImageRef:
CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)imageData, NULL);
CGImageRef imageRef= CGImageSourceCreateImageAtIndex(imageSource, 0, nil);
NSImage *imageView = [[NSImage alloc] initWithCGImage:imageRef size:NSZeroSize];
图像仍然呈现太小。
如何以原始分辨率显示图像?
My target is to display an image in a view.
Considering I've an:
- IBOutlet NSImageView *image for display my image
- NSData *imageData for readig the image file
- NSImage *imageView
In imageData is stored the image (I've used initWithContentsOfFile method).
Now, if I initialize imageView with:
NSImage *imageView = [[NSImage alloc] initWithContentsOfFile:path];
I can see the rendering of the image correctly, but in this way I'm reading twice from the file system.
If I try to:
NSImage *imageView = [[NSImage alloc] initWithData:imageData];
The displayed image is very small..like thumb
Whit CGImageRef:
CGImageSourceRef imageSource = CGImageSourceCreateWithData((CFDataRef)imageData, NULL);
CGImageRef imageRef= CGImageSourceCreateImageAtIndex(imageSource, 0, nil);
NSImage *imageView = [[NSImage alloc] initWithCGImage:imageRef size:NSZeroSize];
The image is still rendering too small.
How can I display the image in original resolution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)