我试图以相同比例的主屏幕捕捉屏幕的2/3。因此,当我捕获屏幕并在同一设备中全屏显示时,我会得到模糊的图像。如何拍摄较小的部分并在没有质量损失的情况下全屏显示?
//Get image of the view
- (UIImage *)getScreenshot {
CGRect rect = [_shareView bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[_shareView.layer renderInContext:context];
UIImage *capturedScreen = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return capturedScreen;
}
答案 0 :(得分:1)
来自Apple文档
func UIGraphicsBeginImageContextWithOptions(_ size: CGSize,
_ opaque: Bool,
_ scale: CGFloat)
要应用于位图的比例因子。如果指定值0.0,则比例因子将设置为设备主屏幕的比例因子。
因此您将比例设置为零,您必须设置为3或2
UIGraphicsBeginImageContextWithOptions(size, NO, 2.0)
答案 1 :(得分:0)
我最好的猜测是你没有设置要渲染的图层比例。
layer.contentsScale = [UIScreen mainScreen].scale;
将其保留为默认值(1)将为您提供视网膜设备上模糊或像素化的捕获。