2013-09-04 5 views
1

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

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); 

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

ответ

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(); 
+0

Я установил свойство UIImageView в setClipsToBounds: ДА и contentMode = UIViewContentModeScaleAspectFill. Он не работает для моего изображения. – Rajesh

Смежные вопросы