1
ตีความ XMP-Metadata ใน ALAssetRepresentation
เมื่อผู้ใช้ทำให้การเปลี่ยนแปลงบางอย่าง (การปลูกพืช, ลบตาแดง, ... ) ให้กับรูปถ่ายในในตัวPhotos.appบน iOS, การเปลี่ยนแปลงจะไม่นำไปใช้กับการส่งคืนโดยที่สอดคล้องกันfullResolutionImageALAssetRepresentation อย่างไรก็ตามการเปลี่ยนแปลงจะนำไปใช้กับthumbnailและfullScreenImageส่งคืนโดยไฟล์ALAssetRepresentation. นอกจากนี้ข้อมูลเกี่ยวกับการเปลี่ยนแปลงประยุกต์ที่สามารถพบได้ในALAssetRepresentation's @"AdjustmentXMP"เมตาดาต้าพจนานุกรมผ่านที่สำคัญ ฉันต้องการใช้การเปลี่ยนแปลงเหล่านี้กับfullResolutionImageตัวฉันเองเพื่อรักษาความสม่ำเสมอ ฉันได้พบว่าในiOS6 + CIFilter 's filterArrayFromSerializedXMP: inputImageExtent:error:สามารถแปลงนี้ XMP-ข้อมูลเมตาไปยังอาร์เรย์ของCIFilter' s: ALAssetRepresentation *rep; NSString *xmpString = rep.metadata[@"AdjustmentXMP"]; NSData *xmpData = [xmpString dataUsingEncoding:NSUTF8StringEncoding]; CIImage *image = [CIImage imageWithCGImage:rep.fullResolutionImage]; NSError *error = nil; NSArray *filterArray = [CIFilter filterArrayFromSerializedXMP:xmpData inputImageExtent:image.extent error:&error]; if (error) { …