diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate
index 1128009..3c06a1c 100644
Binary files a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate and b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
index dcc11bb..a2c2a87 100644
--- a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
+++ b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
@@ -14,8 +14,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "593"
- endingLineNumber = "593"
+ startingLineNumber = "612"
+ endingLineNumber = "612"
landmarkName = "imagePickerController(_:didFinishPickingMediaWithInfo:)"
landmarkType = "7">
@@ -30,8 +30,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "585"
- endingLineNumber = "585"
+ startingLineNumber = "604"
+ endingLineNumber = "604"
landmarkName = "imagePickerController(_:didFinishPickingMediaWithInfo:)"
landmarkType = "7">
@@ -62,8 +62,8 @@
filePath = "SwiftProject/Project/Controller/CCHomeController.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
- startingLineNumber = "549"
- endingLineNumber = "549"
+ startingLineNumber = "568"
+ endingLineNumber = "568"
landmarkName = "photoLibrary()"
landmarkType = "7">
@@ -457,38 +457,6 @@
landmarkType = "7">
-
-
-
-
-
-
-
-
@@ -556,32 +524,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
index 8e25d55..04edb5f 100644
--- a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
+++ b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -9,105 +9,141 @@
isShown
orderHint
- 1
+ 36
Promises (Playground) 10.xcscheme
isShown
orderHint
- 11
+ 45
Promises (Playground) 11.xcscheme
isShown
orderHint
- 12
+ 46
Promises (Playground) 12.xcscheme
isShown
orderHint
- 47
+ 48
Promises (Playground) 13.xcscheme
isShown
orderHint
- 48
+ 49
Promises (Playground) 14.xcscheme
isShown
orderHint
- 49
+ 50
+
+ Promises (Playground) 15.xcscheme
+
+ orderHint
+ 47
+
+ Promises (Playground) 16.xcscheme
+
+ orderHint
+ 51
+
+ Promises (Playground) 17.xcscheme
+
+ orderHint
+ 52
+
+ Promises (Playground) 18.xcscheme
+
+ isShown
+
+ orderHint
+ 53
+
+ Promises (Playground) 19.xcscheme
+
+ isShown
+
+ orderHint
+ 54
Promises (Playground) 2.xcscheme
isShown
orderHint
- 2
+ 37
+
+ Promises (Playground) 20.xcscheme
+
+ isShown
+
+ orderHint
+ 55
Promises (Playground) 3.xcscheme
isShown
orderHint
- 3
+ 38
Promises (Playground) 4.xcscheme
isShown
orderHint
- 4
+ 39
Promises (Playground) 5.xcscheme
isShown
orderHint
- 5
+ 40
Promises (Playground) 6.xcscheme
isShown
orderHint
- 6
+ 41
Promises (Playground) 7.xcscheme
isShown
orderHint
- 7
+ 42
Promises (Playground) 8.xcscheme
isShown
orderHint
- 8
+ 43
Promises (Playground) 9.xcscheme
isShown
orderHint
- 10
+ 44
Promises (Playground).xcscheme
isShown
orderHint
- 0
+ 35
diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift
index da960ff..23a5a35 100644
--- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift
+++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift
@@ -546,8 +546,7 @@ class CCSpatialPhotoDisplayController: BaseController {
}else if(selectedIndex == 2){//红蓝立体
var ri = joinImages_red_blue(lciImage: lciImage, rciImage: rciImage, scale: currentScale,rbImage: redBlueImage)
-// var ri = UIImage(ciImage: lastImg)
- ri = ri.getUpImg(imgOrigOritentation: self.imgOritentation )
+// ri = ri.getUpImg(imgOrigOritentation: self.imgOritentation )
redBlueImage = ri
self.mImgView.image = ri
diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift
index 5894853..08ed7fe 100644
--- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift
+++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift
@@ -158,10 +158,10 @@ extension CCSpatialPhotoDisplayController {
let edS = 20 //比列
var left = UIImage(ciImage: leftImage )
- left = left.getUpImg(imgOrigOritentation: imgOritentation)
+// left = left.getUpImg(imgOrigOritentation: imgOritentation)
var right = UIImage(ciImage: rightImage )
- right = right.getUpImg(imgOrigOritentation: imgOritentation)
+// right = right.getUpImg(imgOrigOritentation: imgOritentation)
//获取缩放图片
let (n_left,n_left_size) = getImgWithScale(image: left, scale: scale)
diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController/CCSpatialShootController+Generate.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController/CCSpatialShootController+Generate.swift
index 66f18a5..00237e6 100644
--- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController/CCSpatialShootController+Generate.swift
+++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialShootController/CCSpatialShootController+Generate.swift
@@ -18,36 +18,40 @@ extension CCSpatialShootController: AVCaptureAudioDataOutputSampleBufferDelegate
//视频、音频回调
func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {
- if shootingMode == .CCShootingMode_Camera && self.isTakePhoto{
+ if shootingMode == .CCShootingMode_Camera {
takePhotoSemaphore.wait()
- print("xxsddd:\(Thread.current)")
- if output == wideAngleCameraVideoDataOutput && self.isTakePhoto_wideCamera {
- if let firstFrame = imageFromSampleBuffer(sampleBuffer: sampleBuffer) {
- imgs.add(firstFrame)
- self.isTakePhoto_wideCamera = false
+ if self.isTakePhoto {
+ print("xxsddd:\(Thread.current)")
+
+ if output == wideAngleCameraVideoDataOutput && self.isTakePhoto_wideCamera {
+ if let firstFrame = imageFromSampleBuffer(sampleBuffer: sampleBuffer,orientation: connection.videoOrientation) {
+ imgs.add(firstFrame)
+ self.isTakePhoto_wideCamera = false
+ }
+ else {
+ print("wide Angle firstframe is lost....")
+ }
+ } else if output == ultraWideCameraVideoDataOutput && self.isTakePhoto_ultraCamera{
+ if let firstFrame = imageFromSampleBuffer(sampleBuffer: sampleBuffer,orientation: connection.videoOrientation) {
+ imgs.add(firstFrame)
+ self.isTakePhoto_ultraCamera = false
+ }
+ else{
+ print("ultra Wide firstFrame is lost....")
+ }
+ }
+
+ if(imgs.count == 2){
+ compositeSpatialPhoto()
+ imgs.removeAllObjects()
+ self.isTakePhoto = false
+ print("2张照片满足合成....")
}
else {
- print("wide Angle firstframe is lost....")
- }
- } else if output == ultraWideCameraVideoDataOutput && self.isTakePhoto_ultraCamera{
- if let firstFrame = imageFromSampleBuffer(sampleBuffer: sampleBuffer) {
- imgs.add(firstFrame)
- self.isTakePhoto_ultraCamera = false
- }
- else{
- print("ultra Wide firstFrame is lost....")
+ print("images 少于2张....")
}
}
- if(imgs.count == 2){
- compositeSpatialPhoto()
- imgs.removeAllObjects()
- self.isTakePhoto = false
- print("2张照片满足合成....")
- }
- else {
- print("images 少于2张....")
- }
takePhotoSemaphore.signal()
}
@@ -80,26 +84,30 @@ extension CCSpatialShootController: AVCaptureAudioDataOutputSampleBufferDelegate
//通过samplebuffer生成uiimage
- func imageFromSampleBuffer(sampleBuffer: CMSampleBuffer) -> UIImage? {
- // 获取像素缓冲区
+ func imageFromSampleBuffer(sampleBuffer: CMSampleBuffer,orientation:AVCaptureVideoOrientation ) -> UIImage? {
guard let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer) else { return nil }
-
- // 创建CoreImage图像
- let ciImage = CIImage(cvImageBuffer: imageBuffer)
-
- // 将CIImage转换为CGImage
- if let cgImage = CIContext(options: nil).createCGImage(ciImage, from: ciImage.extent) {
- // 创建UIImage
- let image = UIImage(cgImage: cgImage)
- return image
- }
-
- return nil
+ let ciImage = CIImage(cvPixelBuffer: imageBuffer)
+ let temporaryContext = CIContext(options: nil)
+ guard let cgImage = temporaryContext.createCGImage(ciImage, from: ciImage.extent) else { return nil }
+ print("rect:\(ciImage.extent)")
+ let image = UIImage(cgImage: cgImage, scale: UIScreen.main.scale, orientation: getImgOrientation(orientation: orientation))
+ return image
}
+ func getImgOrientation(orientation:AVCaptureVideoOrientation )->UIImage.Orientation {
+ switch orientation {
+ case .portrait:
+ return .up
+ case .portraitUpsideDown:
+ return .down
+ case .landscapeRight:
+ return .right
+ case .landscapeLeft:
+ return .left
+ }
+ }
-
-
+
@@ -184,7 +192,7 @@ extension CCSpatialShootController: AVCaptureAudioDataOutputSampleBufferDelegate
let url = URL.documentsDirectory.appending(path:"aaa12.HEIC")
let destination = CGImageDestinationCreateWithURL(url as CFURL, UTType.heic.identifier as CFString, 2, nil)!
var oo = imageCGImagePropertyOrientation.rawValue
- let orientation_cf = CFNumberCreate(nil, CFNumberType.intType, &oo)
+// let orientation_cf = CFNumberCreate(nil, CFNumberType.intType, &oo)
let properties1 = [
kCGImagePropertyGroups: [
kCGImagePropertyGroupIndex: 0,
@@ -192,11 +200,11 @@ extension CCSpatialShootController: AVCaptureAudioDataOutputSampleBufferDelegate
kCGImagePropertyGroupImageIndexLeft: 0,
kCGImagePropertyGroupImageIndexRight: 1,
],
- kCGImagePropertyTIFFDictionary:[
- kCGImagePropertyOrientation:orientation_cf,
- ],
-
- kCGImagePropertyOrientation:orientation_cf as Any,
+// kCGImagePropertyTIFFDictionary:[
+// kCGImagePropertyOrientation:orientation_cf,
+// ],
+//
+// kCGImagePropertyOrientation:orientation_cf as Any,
kCGImagePropertyHEIFDictionary: [
kIIOMetadata_CameraExtrinsicsKey: [
kIIOCameraExtrinsics_CoordinateSystemID: 0,
@@ -220,10 +228,10 @@ extension CCSpatialShootController: AVCaptureAudioDataOutputSampleBufferDelegate
kCGImagePropertyGroupImageIndexLeft: 0,
kCGImagePropertyGroupImageIndexRight: 1,
],
- kCGImagePropertyTIFFDictionary:[
- kCGImagePropertyOrientation:orientation_cf,
- ],
- kCGImagePropertyOrientation:orientation_cf as Any,
+// kCGImagePropertyTIFFDictionary:[
+// kCGImagePropertyOrientation:orientation_cf,
+// ],
+// kCGImagePropertyOrientation:orientation_cf as Any,
kCGImagePropertyHEIFDictionary: [
kIIOMetadata_CameraExtrinsicsKey: [