2

我有一个全屏 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);

这是我当前的代码,裁剪和保存工作,只是没有正确裁剪。有任何想法吗?

4

1 回答 1

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();
于 2013-09-04T03:38:00.827 回答