2016-01-12 13 views
5

Cihazdan bir .jpeg dosyasına bir UIImage nesneyi kaydetmek için çalışıyorum ve bu kodu kullanıyorum:Neden .jpeg dosya ios sonra büyük boyutu UIImageWriteToSavedPhotosAlbum var

-(void)saveImageToDocumentsDirectory:(UIImage *)mimage withFileName:(NSString *)fileName 
{ 
    UIImageWriteToSavedPhotosAlbum(mimage,nil,nil,nil); 
    NSData *dataForJPEGFile = UIImageJPEGRepresentation(mimage, 1.0); 
    NSError *error2 = nil; 
    if (![dataForJPEGFile writeToFile:[self getDirectoryFilePath:fileName] options:NSAtomicWrite error:&error2]) 
    { 
     return; 
    } 
} 

.jpeg türünün görüntüsünü kaydedecek ancak aynı görüntü nesnesini .jpeg türünde ve aynı kalitede kaydeden UIImageWriteToSavedPhotosAlbum(mimage,nil,nil,nil) yöntemine göre çok fazla bellek harcar.

Sorum şu ki ..?

+0

"Aynı kalite" öznel, boyutları yaklaşık aynı ve kalite hala "aynı" olana kadar görüntü kalitesi parametresini aşamalı olarak azaltmaya çalıştınız mı? –

+0

@ A-Live görüntü kalitesi parametresini azalttığımda boyut da azalır ve kalitedir. ama görüntüyü bu UIImageWriteToSavedPhotosAlbum (mimage, nil, nil, nil) yönteminin yaptığı gibi kaydetmek istiyorum. Bunu nasıl başarabilirim..?? – Sushobhit

+0

Kolay, UIImageWriteToSavedPhotosAlbum kullanın. –

cevap

-1

Kaliteyi gerçekten yüksek olacak şekilde ayarlıyorsunuz (1.0), sanırım 0.6 ya da 0.7 bir yerlerde okurken jpeg dosyaları için yeterli olur.

NSData *dataForJPEGFile = UIImageJPEGRepresentation(mimage, 0.65); 

Belki de, kullandığınız uygulamaya bağlı olarak uygun kaliteyi bulabilirsiniz, bazen 0,5'den fazlası yeterlidir.