diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift index 79f41c1..b42b825 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/VRPhotoTransformController.swift @@ -230,7 +230,13 @@ class VRPhotoTransformController: BaseController { let result:UIImage = SpatialImageConvertor.convertToHSBS(imageData: sourceImageData!)! UIImageWriteToSavedPhotosAlbum(result, self, #selector(completeSaveImg(_:error:contextInfo:)), nil) case .fsbs_3D: - let result:UIImage = SpatialImageConvertor.convertToHSBS(imageData: sourceImageData!)! + let result:UIImage = SpatialImageConvertor.convertToFSBS(imageData: sourceImageData!)! + UIImageWriteToSavedPhotosAlbum(result, self, #selector(completeSaveImg(_:error:contextInfo:)), nil) + case .hou_3d: + let result:UIImage = SpatialImageConvertor.convertToHOU(imageData: sourceImageData!)! + UIImageWriteToSavedPhotosAlbum(result, self, #selector(completeSaveImg(_:error:contextInfo:)), nil) + case .fou_3D: + let result:UIImage = SpatialImageConvertor.convertToFOU(imageData: sourceImageData!)! UIImageWriteToSavedPhotosAlbum(result, self, #selector(completeSaveImg(_:error:contextInfo:)), nil) default: diff --git a/SwiftProject/SwiftProject/Project/Util/SpatialImageConvertor.swift b/SwiftProject/SwiftProject/Project/Util/SpatialImageConvertor.swift index ed1f348..297a958 100644 --- a/SwiftProject/SwiftProject/Project/Util/SpatialImageConvertor.swift +++ b/SwiftProject/SwiftProject/Project/Util/SpatialImageConvertor.swift @@ -16,6 +16,32 @@ class SpatialImageConvertor { return lastImg } + //将空间照片转换为fsbs格式 + public class func convertToFSBS(imageData:Data) -> UIImage? { + let (left_uiimage,right_uiimage) = SpatialImageConvertor.getLeftAndRightImgFrom(imageData: imageData) + let newpb = SpatialImageConvertor.joinImages_sbs( left: left_uiimage!, right:right_uiimage! ,imgWidth: left_uiimage!.size.width*2,imgHeight:left_uiimage!.size.height) + let lastImg = SpatialImageConvertor.convertCIImageToUIImage(ciImage: newpb)! + return lastImg + } + + //将空间照片转换为hou格式 + public class func convertToHOU(imageData:Data) -> UIImage? { + let (left_uiimage,right_uiimage) = SpatialImageConvertor.getLeftAndRightImgFrom(imageData: imageData) + let newpb = SpatialImageConvertor.joinImages_ou( left: left_uiimage!, right:right_uiimage! ,imgWidth: left_uiimage!.size.width,imgHeight:left_uiimage!.size.height) + let lastImg = SpatialImageConvertor.convertCIImageToUIImage(ciImage: newpb)! + return lastImg + } + + //将空间照片转换为fou格式 + public class func convertToFOU(imageData:Data) -> UIImage? { + let (left_uiimage,right_uiimage) = SpatialImageConvertor.getLeftAndRightImgFrom(imageData: imageData) + let newpb = SpatialImageConvertor.joinImages_ou( left: left_uiimage!, right:right_uiimage! ,imgWidth: left_uiimage!.size.width,imgHeight:left_uiimage!.size.height*2) + let lastImg = SpatialImageConvertor.convertCIImageToUIImage(ciImage: newpb)! + return lastImg + } + + + class func getLeftAndRightImgFrom(imageData:Data) -> (left_uiimage:UIImage?,right_uiimage:UIImage?){ guard let imageSource = CGImageSourceCreateWithData(imageData as CFData, nil) else { return (nil,nil) @@ -48,7 +74,7 @@ class SpatialImageConvertor { } - //将两张图片合成一张图片 + //将两张图片合成一张图片 SBS class func joinImages_sbs( left:UIImage, right:UIImage,imgWidth:CGFloat,imgHeight:CGFloat) -> CIImage { let newImageSize = CGSize(width:imgWidth, height: imgHeight); UIGraphicsBeginImageContextWithOptions(newImageSize, false, 1); @@ -60,4 +86,17 @@ class SpatialImageConvertor { let ci = CIImage(cgImage: image.cgImage!) return ci } + + //将两张图片合成一张图片 OU + class func joinImages_ou( left:UIImage, right:UIImage,imgWidth:CGFloat,imgHeight:CGFloat) -> CIImage { + let newImageSize = CGSize(width:imgWidth, height: imgHeight); + UIGraphicsBeginImageContextWithOptions(newImageSize, false, 1); + left.draw(in: CGRect(x:0, y:0, width:imgWidth, height:imgHeight/2)) + right.draw(in: CGRect(x:0, y:imgHeight/2, width:imgWidth, height:imgHeight/2)) + let image = UIGraphicsGetImageFromCurrentImageContext()! + UIGraphicsEndImageContext(); + + let ci = CIImage(cgImage: image.cgImage!) + return ci + } }