Задача: Обрезка с уменьшенным изображением в порядке. Обрезка с увеличенным изображением показывает изображение выше того, что должно быть. yOffset У меня есть, потому что квадрат урожая, который я хочу, начинается ниже, где выполняется прокрутка.Как захватить увеличенный UIImageView внутри Scrollview для обрезки?
Код:
CGRect rect;
float yOffset = 84;
rect.origin.x = floorf([scrollView contentOffset].x * zoomScale);
rect.origin.y = floorf(([scrollView contentOffset].y + yOffset) * zoomScale);
rect.size.width = floorf([scrollView bounds].size.width * zoomScale);
rect.size.height = floorf((320 * zoomScale));
if (rect.size.width > 320) {
rect.size.width = 320;
}
if (rect.size.height > 320) {
rect.size.height = 320;
}
CGImageRef cr = CGImageCreateWithImageInRect([[imageView image] CGImage], rect);
UIImage *img = imageView.image; //[UIImage imageWithCGImage:cr];
UIGraphicsBeginImageContext(rect.size);
// translated rectangle for drawing sub image
CGRect drawRect = CGRectMake(-rect.origin.x, -rect.origin.y, 320.0f, 320.0f);
NSLog(@"drawRect: %@", NSStringFromCGRect(drawRect));
NSLog(@"rect: %@", NSStringFromCGRect(rect));
// draw image
[img drawInRect:drawRect];
// grab image
UIImage *cropped = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CGImageRelease(cr);
[self.delegate imageCropper:self didFinishCroppingWithImage:cropped];
Что я делаю, что вызывает изображение, чтобы получить неправильную высоту при масштабировании?
Выглядит очень хорошо! Я вижу зеленую рамку сверху и снизу изображения. Похоже, что ширина и размер 240x240, потому что минимальный масштаб масштабирования прокрутки - 1,3. Тестирование .. любой совет? – quantumpotato
Где в моем ответе или в вашем .., если мой ответ может помочь вам, тогда вы можете его принять –