如何获取当前屏幕ios中特定区域的UIImage

gra*_*ile 6 screen area uiimage ios

以下代码获取当前屏幕的UIImage:

    UIGraphicsBeginImageContext(self.view.frame.size);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [self.view.layer renderInContext:ctx];
    UIImage *backgroundImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

如果我有一个CGRect矩形,我想只获得该矩形中当前屏幕的UIImage,我该怎么办?

iPa*_*tel 14

对于获取矩形(裁剪)图像:

UIImage *croppedImg = nil;
CGRect cropRect = CGRectMake(AS You Need);
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect];
Run Code Online (Sandbox Code Playgroud)

使用以下方法返回UIImage(如您所希望的图像大小)

- (UIImage *)croppIngimageByImageName:(UIImage *)imageToCrop toRect:(CGRect)rect
    {
        //CGRect CropRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height+15);

        CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
        UIImage *cropped = [UIImage imageWithCGImage:imageRef];
        CGImageRelease(imageRef);

        return cropped;
    }
Run Code Online (Sandbox Code Playgroud)

  • 这样可行!我想投票表示感谢,但我没有足够的声誉. (2认同)