如何在 iOS 中的图像上实施 XMP 预设滤镜

How to implement XMP preset filters on images in iOS

我有一个 XMP 文件,需要在图像上应用 XMP 滤镜。我已将其转换为 CFData 但无法读取字典或数组格式。我研究过 iOS 中的 XMP 文件,但我认为它不能通过更改图像的元数据来实现。

我的 XMP 文件可以从下面的 link 下载:

https://drive.google.com/file/d/1rUcjkT5rcV_rG89blTLJfvL9AgOvmWUX/view?usp=sharing

方法:- 您可以将 XMP 文件转换为 json 文件并对图像应用滤镜。

如果您想将 XMP 转换为 json,则可以使用 python-xmp-toolkit 或我的 convertXMPToJson

如果您使用的是我的 python 文件,那么只需要在您的终端上设置路径并在命令下方设置 运行。

python convertXMPToJson.py XMP/your_XMP_file_Name.xmp json/your_Json_file_Name.json

它将您的 xmp 文件转换为 json 文件,您可以应用 CIFilter 或使用 CIKernel、Metal 编写自定义过滤器。

Sample CIFilter

let imgFilter = CIFilter(name: "CIExposureAdjust")
imgFilter?.setValue(value, forKey: kCIInputEVKey)
filter.setValue(image, forKey: kCIInputImageKey)
guard let filteredImage = filter.value(forKey: kCIOutputImageKey) else { return image }

您可以在 here 找到示例过滤器。

Core Image 中提供了大量 CIFilter。您可以在 here.

找到其他 CIFilter