যখন কোনও ব্যবহারকারী আইওএস -এ অন্তর্নির্মিত ফটো.এপ -এর ফটোতে কিছু পরিবর্তন (ক্রপিং, লাল চোখের মুছে ফেলা, ...) করেন , তখন পরিবর্তনগুলি fullResolutionImage
সংশ্লিষ্ট দ্বারা ফিরিয়ে নেওয়া হয় না ALAssetRepresentation
।
যাইহোক, পরিবর্তনগুলি প্রয়োগ হয় thumbnail
এবং fullScreenImage
দ্বারা প্রত্যাবর্তিত হয় ALAssetRepresentation
। তদ্ব্যতীত, প্রয়োগকৃত পরিবর্তনগুলি সম্পর্কিত ALAssetRepresentation
কীগুলির মাধ্যমে মেটাডেটা অভিধানে পাওয়া যাবে @"AdjustmentXMP"
।
fullResolutionImage
ধারাবাহিকতা রক্ষার জন্য আমি নিজের মধ্যে এই পরিবর্তনগুলি প্রয়োগ করতে চাই । আমি জানতে পেরেছি যে iOS6 + CIFilter
এর মাধ্যমে filterArrayFromSerializedXMP: inputImageExtent:error:
এই এক্সএমপি-মেটাডেটা'র অ্যারে রূপান্তর করতে পারে CIFilter
:
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) {
NSLog(@"Error during CIFilter creation: %@", [error localizedDescription]);
}
CIContext *context = [CIContext contextWithOptions:nil];
for (CIFilter *filter in filterArray) {
[filter setValue:image forKey:kCIInputImageKey];
image = [filter outputImage];
}
তবে এটি কেবল কিছু ফিল্টার (ক্রপিং, স্বতঃবৃদ্ধি) এর জন্য কাজ করে তবে লো-চোখ অপসারণের মতো অন্যদের জন্য নয়। এই ক্ষেত্রে, CIFilter
এর কোনও দৃশ্যমান প্রভাব নেই। অতএব, আমার প্রশ্নগুলি:
- কেউ কি লাল চোখ মুছে ফেলার উপায় সম্পর্কে সচেতন
CIFilter
? (একরকমভাবে ফটোস্যাপের সাথে সামঞ্জস্যপূর্ণ। কী দিয়ে ফিল্টারটিkCIImageAutoAdjustRedEye
যথেষ্ট নয় Eg উদাহরণস্বরূপ, এটি চোখের অবস্থানের জন্য প্যারামিটার নেয় না)) - আইওএস 5 এর অধীনে এই ফিল্টারগুলি তৈরি এবং প্রয়োগ করার কোনও সম্ভাবনা আছে কি?