Я использую TOCropViewController для обрезки моего изображения.Это работает нормально в основном приложении.Проблема в том, что когда я пытаюсь использовать эту библиотеку в расширении общего доступа, она не работает.Не работая, я имею в виду, когда я пытаюсь обрезать очень большое изображение (изображение, снятое на камеру iPhone), расширение выходит из строя.По словам разработчика библиотеки, это может быть связано с проблемой памяти при попытке обрезки.Поэтому я попытался уменьшить изображение, прежде чем передавать его на изображение.Теперь проблема, с которой я сталкиваюсь, заключается в том, что это уменьшение масштаба работает для нескольких изображений и приводит к краху для других.Не уверен, почему это происходит.Код, который я использую для уменьшения масштаба:
- (UIImage *)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize isAspectRatio:(BOOL)aspect {
if (!image) {
return nil;
}
CGFloat originRatio = image.size.width / image.size.height;
CGFloat newRatio = newSize.width / newSize.height;
CGSize sz;
if (!aspect) {
sz = newSize;
}else {
if (originRatio < newRatio) {
sz.height = newSize.height;
sz.width = newSize.height * originRatio;
}else {
sz.width = newSize.width;
sz.height = newSize.width / originRatio;
}
}
CGFloat scale = 1.0;
sz.width /= scale;
sz.height /= scale;
UIGraphicsBeginImageContextWithOptions(sz, NO, scale);
[image drawInRect:CGRectMake(0, 0, sz.width, sz.height)];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
Может кто-нибудь предложить способ уменьшения масштаба изображения в расширении общего ресурса, чтобы избежать сбоев?
Заранее спасибо.