From 38cde26cd927eaf48b23bff2773e4ba681ad5b5a Mon Sep 17 00:00:00 2001 From: bluesea <307723040@qq.com> Date: Thu, 7 Mar 2024 15:12:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=EF=BC=9A=201.=E7=A9=BA?= =?UTF-8?q?=E9=97=B4=E5=9B=BE=E7=89=87=E8=BD=ACHOU=E5=B9=B6=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=9B=B8=E5=86=8C=EF=BC=9B=202.=E7=A9=BA=E9=97=B4?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E8=BD=ACFOU=E5=B9=B6=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E7=9B=B8=E5=86=8C=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../VRPhotoTransformController.swift | 8 +++- .../Project/Util/SpatialImageConvertor.swift | 41 ++++++++++++++++++- 2 files changed, 47 insertions(+), 2 deletions(-) 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 + } }