小编ada*_*oto的帖子

编辑照片元数据和 PHAdjustmentData

以下函数加载一张照片,编辑附加到它的 exif 元数据并将其保存回来。该功能似乎只适用于已经附加了 PHAdjustmentData 的照片,即之前使用其他应用程序编辑过的照片。如果照片尚未编辑,它会在 performChanges() 块中失败并打印

Failed to save. Error: Optional(Error Domain=NSCocoaErrorDomain Code=-1 "(null)"). 
Run Code Online (Sandbox Code Playgroud)

为什么在这种情况下会失败?查看 Stack Overflow 我已经看到了这个问题的许多其他版本,但似乎没有一个得到解决。我知道如果保存的图像是 PNG 但我的原始图像是 JPEG,因此保存的图像也是 JPEG,这将失败。

func editPhotoProperties(_ asset: PHAsset) {

    let options = PHContentEditingInputRequestOptions()
    options.canHandleAdjustmentData = { data in
            return false
    }
    asset.requestContentEditingInput(with: options) { input, info in
        if let input = input {
            let adjustmentData = PHAdjustmentData(formatIdentifier:"viewfinder", formatVersion:"1.0", data:"viewfinder".data(using:.utf8)!)
            let output = PHContentEditingOutput(contentEditingInput:input)
            output.adjustmentData = adjustmentData

            do {
                let imageData = try Data(contentsOf:input.fullSizeImageURL!)
            } catch {
                print("Failed to load data")
                return …
Run Code Online (Sandbox Code Playgroud)

exif ios swift phphotolibrary

5
推荐指数
0
解决办法
648
查看次数

标签 统计

exif ×1

ios ×1

phphotolibrary ×1

swift ×1