iphone - масштабирование изображений очень медленное - Помощь - PullRequest
3 голосов
/ 01 октября 2010

Я масштабирую изображения самостоятельно, используя следующие коды. Код в порядке, и изображения масштабируются без проблем.

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);

Единственная проблема в том, что процесс масштабирования из этого кода очень медленный. Может кто-нибудь указать, как его улучшить?

спасибо

1 Ответ

2 голосов
/ 02 октября 2010

Вы можете попробовать:

CGContextSetInterpolationQuality(context, kCGInterpolationNone);

или

CGContextSetInterpolationQuality(context, kCGInterpolationLow);

и посмотреть, не приводит ли какая-либо из них к различиям в производительности с приемлемым уровнем качества.

...