我使用以下功能制作图片photoOutput?.capturePhoto(with: AVCapturePhotoSettings(), delegate: self)
。
当我保存图片时,他的体重只有200Ko左右,但是AVCaptureSession.presset的大小为.hight
,因此尺寸为1920x1080。
有m'y prepare函数可以更改所有“图像”变量均为UIImage的视图:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "showPhoto_Segue"{
let previewVC = segue.destination as! PreviewViewController
previewVC.image = self.image
}
}
在我的photoOutput函数中,我有:
func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
if let imageData = photo.fileDataRepresentation(){
image = UIImage(data: imageData)
Arrayimages.append(image!)
Arraytimes.append(Float64(CMTimeGetSeconds(currentCamera!.exposureDuration)))
}
if pictureNumber < 11 {
pictureNumber += 1
DispatchQueue.main.asyncAfter(deadline: .now() + newDurationSeconds + 0.3, execute: {
self.photoOutput?.capturePhoto(with: AVCapturePhotoSettings(), delegate: self)
})
}
else{
image = OpenCVWrapper.hdrImaging(Arrayimages, Arraytimes)
performSegue(withIdentifier: "showPhoto_Segue", sender: nil)
}
}
在我的OpenCVWrapper.mm中,我有:
+(UIImage *) hdrImaging:(NSArray *)images :(NSArray *)times{
std::vector<cv::Mat> imagesVector;
std::vector<float> timesVector;
for (int i = 0; i < images.count; i++) {
UIImage * imageToUse = images[i];
UIImageWriteToSavedPhotosAlbum(imageToUse, nil, nil, nil);
}
//some traitment
return response;
}
当我使用UIImageWriteToSavedPhotosAlbum函数时,我的图片已经被压缩,但是我不知道为什么,文件的重量也很小,以获得高质量的文件!
我应该怎么做才能在1920x1080分辨率下获得全部分辨率?
也许带有AVCapturePhotoSettings?
谢谢!