从swift中给定路径初始化图像?

从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表示。

+0

你能举一个你提出的答案的客观例子吗? – Tiago 2017-04-09 14:51:30