无法从文件中读取DNG

时间:2016-10-24 07:06:14

标签: ios swift camera dng

我试图在func capture(_ captureOutput: AVCapturePhotoOutput, didFinishProcessingRawPhotoSampleBuffer rawSampleBuffer: CMSampleBuffer?, previewPhotoSampleBuffer: CMSampleBuffer?, resolvedSettings: AVCaptureResolvedPhotoSettings, bracketSettings: AVCaptureBracketedStillImageSettings?, error: Error?) { if let rawSampleBuffer = rawSampleBuffer, let data = AVCapturePhotoOutput.dngPhotoDataRepresentation(forRawSampleBuffer: rawSampleBuffer, previewPhotoSampleBuffer: previewPhotoSampleBuffer) { // rawFilePath is a filename in my sandbox FileManager.default.createFile(atPath: rawFilePath, contents: data, attributes: nil) } } 上捕捉图像,以原始格式存储,然后再处理。拍摄和保存图像不是问题,但是当我尝试稍后使用CIFIlter(imageData:options :)打开DNG文件时,filter.outputImage为nil。这是我的代码:

拍摄图片:

let imageData = try? Data(contentsOf: URL(fileURLWithPath: rawFilePath))

if imageData == nil {
    return nil
}

let filter = CIFilter(
     imageURL: URL(fileURLWithPath: filename),
     options: [String(kCGImageSourceTypeIdentifierHint): "com.adobe.raw-image"]
)

let ciImage: CIImage? = filter?.outputImage

文件按预期保存,我可以在lightroom中打开它没有问题。

这是再次读取文件的代码:

CIImage

但是,即使过滤器似乎已初始化,输出图像也为零。根据Apple的说法,如果原始文件的格式具有不受支持的格式,则会发生这种情况,但我不知道这将如何适用于我的案例。

那么:从DNG文件中获取Try()需要做什么?

0 个答案:

没有答案