从swift中给定路径初始化图像?
问题描述:
我在目标C的代码从swift中给定路径初始化图像?
selectedImage = [[NSImage alloc] initWithContentsOfFile:[_thePath path]];
if (selectedImage.size.width < selectedImage.size.height) {
imageProportion =selectedImage.size.height /selectedImage.size.width ;
[selectedImage setSize:NSMakeSize(690.0, 690.0* imageProportion)];
} else{
imageProportion =selectedImage.size.width /selectedImage.size.height ;
[selectedImage setSize:NSMakeSize(690.0* imageProportion, 690.0)];
}
[_imageEditorWindow orderFront:nil];
[_imageViewEditor setFrameSize:NSMakeSize(selectedImage.size.width, selectedImage.size.height)];
initialImageSizeH = selectedImage.size.height ;
initialImageSizeW = selectedImage.size.width ;
[_imageViewEditor setImage:selectedImage];
[_imageViewEditor setFrameOrigin:NSMakePoint(45, 35)];
如果我写在夫特这个代码,用操场但我收到错误:
var selectedImage = NSImage(byReferencingURL: NSURL (string: "/Users/admin/Desktop/10658771_575156615924178_8253607361793017933_o.jpg")!)
2014年11月4日15:32:37.582 MyPlayground [2327:701632] CFURLCopyResourcePropertyForKey失败,因为它传递了这个没有方案的URL:/ Users/admin/CGImageDestinationFinalize图片的目的地必须至少有一个图片 2014年11月4日15:32:37.592 MyPlayground [2327:701632] CGImageDestinationFinalize失败输出类型 'public.tiff'
,如果我使用以下代码:
var selectedImage = NSImage(byReferencingFile: "/Users/admin/Desktop/10658771_575156615924178_8253607361793017933_o.jpg")
OV 4 15点34分:56 imac.inf.ucv.local MyPlayground [2331]:ImageIO:CGImageDestinationFinalize图像目标必须至少有一个图像 2014-11-04 15:34:56.014 MyPlayground [2331:701825] CGImageDestinationFinalize失败,输出类型为public。 tiff'
那么,什么是错的?这个错误说我的文件不是图像?
谢谢,对不起我的英语!
答
它正在寻找图像的TIFF表示。尝试将添加到NSImage
。我最近有这个问题,发现创建一个NSBitmapImageRep
并将其添加到NSImage
表示清除。
假设图像是NSImage
实例
let cg = image.CGImageForProposedRect(nil, context: nil, hints: nil)!
let rep = NSBitmapImageRep(CGImage: cg)
image.addRepresentation(self.bitmapRep)
试试这个,看看它是否效果更好。现在你的方法应该能够从图像中获得TIFF表示。
你能举一个你提出的答案的客观例子吗? – Tiago 2017-04-09 14:51:30