У меня есть категория (очень популярный код, найденный в сети) до UIImage
для различных манипуляций с изображениями.
- (UIImage *)imageScaledToSize:(CGSize)newSize {
UIGraphicsBeginImageContext(newSize);
[self drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Одним из аспектов, которым я интенсивно пользуюсь, является уменьшение изображения. Мое приложение может брать довольно большие изображения и масштабировать их до «рабочего» размера. Тем не менее, есть случаи, когда приложение вылетает из-за памяти. Это связано с тем, что категория создает новое масштабированное изображение из оригинала. Поэтому исходное ОГРОМНОЕ изображение остается резидентным, в то время как создается новое, но все же большое изображение меньшего размера.
Итак, мой вопрос: есть ли способ загрузить это большое исходное изображение и изменить его масштаб на месте? То есть изменить масштаб оригинала, не создавая новый образ и не выделяя больше памяти?