NSIF图像表示中的exif数据

时间:2011-10-08 16:33:25

标签: iphone xcode avfoundation nsdata exif

我正在尝试创建一个PhoneGap插件,该插件使用AFFoundation捕获照片并将图像作为base64编码的字符串返回。这一切都很好,但返回的图像似乎缺少exif数据。尝试了一些变化,并从这里问到的其他问题得到了一些指示,但它似乎仍然无法正常工作。目前的代码是

    NSMutableString *stringToReturn = [NSMutableString stringWithString: @""];
NSLog(@"about to request a capture from: %@", stillImageOutput);
[stillImageOutput captureStillImageAsynchronouslyFromConnection:videoConnection completionHandler:^(CMSampleBufferRef imageBuffer, NSError *error) 
    {
    if (imageBuffer != NULL)
        {
        CFDictionaryRef exifAttachments = CMGetAttachment(imageBuffer, kCGImagePropertyExifDictionary, NULL);   
        CFMutableDictionaryRef mutable;
        if (exifAttachments)
            {
            //
            // Set orientation
            //
            mutable = CFDictionaryCreateMutableCopy(NULL, 0, exifAttachments);
            int orientation = (int)[UIDevice currentDevice].orientation;
            CFDictionaryAddValue(mutable, kCGImagePropertyOrientation, CFNumberCreate(NULL, kCFNumberIntType, &orientation));
            CMSetAttachments(imageBuffer, mutable, kCMAttachmentMode_ShouldPropagate);
            NSLog(@"attachements: %@", mutable);
            }
        //
        // Get the image
        //
        NSData *imageData = [AVCaptureStillImageOutput jpegStillImageNSDataRepresentation:imageBuffer];
        [stringToReturn setString:[imageData base64EncodedString]];
        //
        // Call the success callback
        //
        [self performSelectorOnMainThread:@selector(doSuccessCallback:) withObject:[NSString stringWithString:stringToReturn] waitUntilDone:NO];
        //
        // Save it to the photo album
        // It is done after we did the success callback to avoid accidental issues with
        // the photo album stopping further processing
        //
        UIImage *image = [[UIImage alloc] initWithData:imageData];
        UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
        }
    }];

请问有人可以解决一些问题吗?我似乎完全被困在这里。

0 个答案:

没有答案