Я столкнулся со следующей проблемой: у меня есть несколько UIImage (не в квадрате), и мне нужно изменить их размер и обрезать. Я прочитал почти все вопросы о StackOverflow, но результаты, которые я получаю, не очень хорошие, я имею в виду, что полученное изображение имеет низкое качество (размытое).
Это сценарий:
1) Размер оригинальных изображений: ширина 208 пикселей - переменная высота (то есть от 50 до 2500)
2) Результат изображения: ширина 100 пикселей - высота макс 200 пикселей
Вот что я сделал для достижения этого результата:
..... // missing code
CGFloat height = (100*image.size.height)/image.size.width;
self.thumbnail=[image resizedImage:CGSizeMake(100,height)
interpolationQuality:kCGInterpolationHigh];
..... // missing code
Метод, который я использую для изменения размера изображения, можно найти здесь , после изменения размера изображения я обрезаю его, используя следующий код:
CGRect croppedRect;
croppedRect = CGRectMake(0, 0, self.thumbnail.size.width, 200);
CGImageRef tmp = CGImageCreateWithImageInRect([self.thumbnail CGImage],
croppedRect);
self.thumbnail = [UIImage imageWithCGImage:tmp];
CGImageRelease(tmp);
Короче говоря, изображение изменяется и обрезается, но качество действительно плохое, учитывая, что исходное изображение имело действительно хорошее качество.
Так что вопрос в том, как добиться этого, сохраняя высокое качество изображения?