Próbuję utworzyć Progressive JPEG z UIImage
obiektu, jest to kod JestemTworzenie Progressive JPEG na iOS z ImageIO produkuje mające postać widocznych kwadratów wyników na urządzeniu
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);
Działa to doskonale, gdy uruchomiony w symulatorze , ale niestety wytwarza grube/mające postać widocznych kwadratów wyników na urządzenie:
jakieś pomysły na to, co się dzieje? W ostateczności chciałbym użyć wersji UIImageJPEGRepresentation
, naprawdę potrzebuję progresywnych plików JPEG.
jaka jest wersja na iOS? – Raptor
@ShivanRaptor to zostało przetestowane z iOS 5.0 - 5.1.1 –
Usiłuję przetestować kody z moim telefonem. Czy możesz także udostępnić plik 'test.jpg', którego używasz? – Raptor