【发布时间】:2016-10-07 10:51:00
【问题描述】:
我正在尝试开发一个带有自定义相机的应用程序,用户可以在其中添加过滤器或贴纸(如在 TextCamera 应用程序中)并在社交信息流中分享。 但是我发现了我的第一个问题。
我使用 AVCaptureVideoPreviewLayer 向用户显示预览,拍摄照片并将其传递给 UiImageView 中的另一个视图控制器,但第二张图片比第一张大。
我尝试用这个函数调整图片大小:
func resize(image: UIImage) -> UIImage {
let size = image.size
let newWidth = CGFloat(size.width)
let newHeight = CGFloat(size.height - blackBottomTab.bounds.size.height)
let newSize = CGSizeMake(newWidth,newHeight)
let rect = CGRectMake(0, 0, newSize.width, newSize.height)
UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
image.drawInRect(rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}
在这个函数中,我从图像高度中减去黑色视图(按钮下方)的高度。但是我得到的结果是不同的(见附图)。
This is my preview with a black view under the button
This is the photo taken larger than preview one
我也尝试在第二个 View Controller 的 Storyboard Image View 中使用 Aspect Fit,但结果是一样的。
我的错误在哪里?感谢所有帮助过我的人!
【问题讨论】:
标签: ios swift avfoundation