无法截屏 - 屏幕尺寸和返回图像问题

时间:2017-10-04 17:01:02

标签: ios swift core-graphics screenshot arkit

我的屏幕等于想要捕捉的SceneView的大小

let screen = CGRect(x: 0, y: 0, width: sceneView.frame.size.width, height: sceneView.frame.size.height - 60)


关于大小,我遇到一个"无法使用类型(CGRect)的参数列表调用类型为CGFloat的初始值设定项。我该如何解决此错误?

func Screenshot()
{
        UIGraphicsBeginImageContextWithOptions(UIScreen.main.bounds.size, false, CGFloat(screen))
        view.layer.render(in: UIGraphicsGetCurrentContext()!)
        let image = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
        UIImageWriteToSavedPhotosAlbum(image!, nil, nil, nil)
}

1 个答案:

答案 0 :(得分:1)

您已将错误的参数类型传递给<div class="flip3d"> <div value="play" onMouseOver="play('audio1');" onMouseOut="stop();" class="back"><p>Mshiimin maaba</p> <audio id="audio1" src="../../soundbites/Giigoon.mp3"></audio> </div> <div class="front"><img src="pics/Apple-Fruit-PNG-File.png" width="200px" height="200px" alt="red apple"/></div> </div> <div class="flip3d"> <div value="play" onMouseOver="play('audio2');" onMouseOut="stop();" class="back"><p>Emtigoonhsibigak maaba</p> <audio id="audio2" src="../../soundbites/Jidmoonh.mp3"></audio> </div> <div class="front"><img src="pics/Broccoli-PNG-File.png" width="210px" height="200px" alt="broccoli"/></div> </div> 的参数。最后一个参数是CGFloat类型,它接受浮点值,但是你传递了CGRect类型的值(屏幕)。

UIGraphicsBeginImageContextWithOptions具有以下参数参数

UIGraphicsBeginImageContextWithOptions


参数

<强>大小
新位图上下文的大小(以点为单位)。这表示UIGraphicsGetImageFromCurrentImageContext函数返回的图像的大小。要获取位图的大小(以像素为单位),必须将width和height值乘以scale参数中的值。

<强>不透明
布尔标志,指示位图是否不透明。如果您知道位图是完全不透明的,请指定YES以忽略Alpha通道并优化位图的存储。指定NO意味着位图必须包含一个alpha通道来处理任何部分透明的像素。

<强>尺度
应用于位图的比例因子。如果指定值0.0,则比例因子将设置为设备主屏幕的比例因子。

此处Apple的此功能文档:UIGraphicsBeginImageContextWithOptions

解决方案(提示):传递值0.0或1.0而不是屏幕并查看。

void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale)