2010-10-01 5 views
3

Je redimensionne des images en utilisant les codes suivants. Le code est correct et les images sont mises à l'échelle sans problème.iphone - Mise à l'échelle Les images sont très lentes - Aide

UIImage *originImg = img; 
size = newSize; 
if (originImg.size.width > originImg.size.height) { 
    newSize = CGSizeMake(size.width, originImg.size.height * size.width/originImg.size.width); 
} else { 
    newSize = CGSizeMake(originImg.size.width * size.height/originImg.size.height, size.height); 
} 

UIGraphicsBeginImageContext(newSize); 

CGContextRef context = CGContextRetain(UIGraphicsGetCurrentContext()); 
CGContextTranslateCTM(context, 0.0, newSize.height); 
CGContextScaleCTM(context, 1.0, -1.0); 

CGContextDrawImage(context, CGRectMake(0.0f, 0.0f, newSize.width, newSize.height), originImg.CGImage); 

UIImage* scaledImage = [UIGraphicsGetImageFromCurrentImageContext() retain]; 

UIGraphicsEndImageContext(); 
CGContextRelease(context); 

Le seul problème est que le processus de mise à l'échelle de ce code est très lent. Quelqu'un peut-il indiquer comment l'améliorer?

grâce

Répondre

2

Vous pouvez essayer soit:

CGContextSetInterpolationQuality(context, kCGInterpolationNone); 

ou

CGContextSetInterpolationQuality(context, kCGInterpolationLow); 

et voir si l'un de ces produire des différences de performance avec un niveau de qualité acceptable.

Questions connexes