gpt4 book ai didi

ios - 特定 CGRect 中的 UIGraphicsGetImageFromCurrentImageContext

转载 作者:行者123 更新时间:2023-12-01 17:17:32 27 4
gpt4 key购买 nike

我想以特定大小截取特定位置的屏幕截图。我找到了这个。但它需要整个屏幕。我在哪里可以设置 CGRect。

UIGraphicsBeginImageContext(self.window.bounds.size);
[self.window.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

最佳答案

几天前我实际上被困在这个问题上......然后过了一段时间我设法想出了一个解决方案!我已经在一个类别中实现了它:

#import "UIView+RenderSubframe.h"
#import <QuartzCore/QuartzCore.h>

@implementation UIView (RenderSubframe)

- (UIImage *) renderWithSubframe:(CGRect)frame {

UIGraphicsBeginImageContextWithOptions(frame.size, NO, 0.0);
CGContextRef c = UIGraphicsGetCurrentContext();

CGContextConcatCTM(c, CGAffineTransformMakeTranslation(-frame.origin.x, -frame.origin.y));
[self.layer renderInContext:c];

UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return screenshot;

}

@end

瞧!

如果我没记错的话,这种方法实际上根本不会渲染 View 中不需要的部分,这比事后裁剪图像更有效。

在您的情况下,您希望将此类别应用于 UIWindow 类而不是 UIView。

关于ios - 特定 CGRect 中的 UIGraphicsGetImageFromCurrentImageContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14317414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com