Создание прогрессивного JPEG в iOS с ImageIO приводит к блочным результатам на устройстве

Я пытаюсь создать прогрессивный JPEG изUIImage объект, это код i 'm

NSMutableData *data = [NSMutableData data];

NSString *path = [NSHomeDirectory() stringByAppendingPathComponent: @"Library/Caches/test.jpg"];

CFURLRef url = CFURLCreateWithString(NULL, (CFStringRef)[NSString stringWithFormat:@"file://%@", path], NULL);
CGImageDestinationRef destination = CGImageDestinationCreateWithURL(url, kUTTypeJPEG, 1, NULL);
CFRelease(url);

NSDictionary *jfifProperties = [NSDictionary dictionaryWithObjectsAndKeys:
                                (__bridge id)kCFBooleanTrue, kCGImagePropertyJFIFIsProgressive,
                                nil];

NSDictionary *properties = [NSDictionary dictionaryWithObjectsAndKeys:
                            [NSNumber numberWithFloat:.7], kCGImageDestinationLossyCompressionQuality,
                            jfifProperties, kCGImagePropertyJFIFDictionary,
                            nil];

CGImageDestinationAddImage(destination, ((UIImage*)object).CGImage, (__bridge CFDictionaryRef)properties);
CGImageDestinationFinalize(destination);
CFRelease(destination);

Это прекрасно работает при работе в симуляторе, но, к сожалению, дает толстые / блочные результаты на устройстве:

chunky/blocky result.

Есть идеи о том, что происходит? я вернусь к использованиюUIImageJPEGRepresentation в крайнем случае, мне действительно нужны прогрессивные JPEG.

Ответы на вопрос(2)

Ваш ответ на вопрос