У меня есть полноэкранный UIImageView с изображением в нем, установленным на AspectFill (полная обрезка), как я могу сохранить только видимую часть изображения при использовании режима содержимого Aspect Fill?

CGRect visibleRect;   
visibleRect.size= mImageView.frame.size;
CGImageRef cropped_img = CGImageCreateWithImageInRect(mImageView.image.CGImage, visibleRect);
UIImage *finalImage = [[UIImage alloc]initWithCGImage:cropped_img];
UIImageWriteToSavedPhotosAlbum(finalImage, nil, nil, nil);

Это мой текущий код, обрезка и сохранение работают, просто не правильно обрезать. Любые идеи?

2
Dave Chenell 4 Сен 2013 в 06:38

1 ответ

Лучший ответ

Попробуй это:

UIGraphicsBeginImageContext(mImageView.frame.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGImageRef image = CGBitmapContextCreateImage(context);
width = CGImageGetWidth(image);
height = CGImageGetHeight(image);
CGImageRef cropped_img = CGImageCreateWithImageInRect(image, CGRectMake(0, 0, width, height));

// спасти...

CGImageRelease(image);
UIGraphicsEndImageContext();
1
stosha 4 Сен 2013 в 07:38
Я установил свойство UIImageView как setClipsToBounds: YES и contentMode = UIViewContentModeScaleAspectFill. Это не работает для моего изображения.
 – 
Rajesh Maurya
11 Дек 2014 в 09:07