菜鸟教程小白 发表于 2022-12-11 20:25:51

iOS 相机 AVCaptureSession 在纵向与横向大小或分辨率


                                            <p><p>我在纵向模式下创建了 AVCaptureVideoPreviewLayer,我想知道如何在纵向模式下以 16:9 比例(横向纵横比)显示它</p>
<p>我试过了:</p>
<p>1.给相机 PreviewLayer 16:9 大小,但它显示为缩放</p>
<p>2.我尝试使用 <code>videoPreviewLayer?.connection?.videoOrientation = AVCaptureVideoOrientation.landscape</code> 这里的分辨率是完美的,但它显示为旋转图像(风景相机)</p>
<p>我想将相机倾斜到具有横向纵横比的纵向或
具有横向纵横比的人像相机</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>计算纵横比,然后相应地缩放图像..</p>

<pre><code>func imageWithImage (sourceImage:UIImage, scaledToWidth: CGFloat) -&gt; UIImage {
    let oldWidth = sourceImage.size.width
    let scaleFactor = scaledToWidth / oldWidth

    let newHeight = sourceImage.size.height * scaleFactor
    let newWidth = oldWidth * scaleFactor

    UIGraphicsBeginImageContext(CGSize(width:newWidth, height:newHeight))
    sourceImage.draw(in: CGRect(x:0, y:0, width:newWidth, height:newHeight))
    let newImage = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return newImage!
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于iOS 相机 AVCaptureSession 在纵向与横向大小或分辨率,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/51666255/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/51666255/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS 相机 AVCaptureSession 在纵向与横向大小或分辨率