修正方向旋转

This commit is contained in:
bluesea 2024-03-26 12:00:09 +08:00
parent c26908cfac
commit 7904b23756
4 changed files with 44 additions and 18 deletions

View File

@ -40,6 +40,7 @@ class CCSpatialPhotoDisplayController: BaseController {
var imageAsset:PHAsset? var imageAsset:PHAsset?
var imgData:Data? var imgData:Data?
var imgOritentation:UIImage.Orientation = .left
// //
var type = 0 var type = 0
@ -170,7 +171,7 @@ class CCSpatialPhotoDisplayController: BaseController {
// //
var image = UIImage(data: originalData!) var image = UIImage(data: originalData!)
mImgView.image = image mImgView.image = image
imgOritentation = image?.imageOrientation ?? .left
let isSpatial = isSpatialImage(originalData: originalData!) let isSpatial = isSpatialImage(originalData: originalData!)
if !isSpatial { if !isSpatial {
@ -339,7 +340,7 @@ class CCSpatialPhotoDisplayController: BaseController {
if(selectedIndex == 0){ if(selectedIndex == 0){
// --- 2D(广) // --- 2D(广)
var image = UIImage(data: photoOriginalData!) let image = UIImage(data: photoOriginalData!)
mImgView.image = image mImgView.image = image
}else if(selectedIndex == 1){ }else if(selectedIndex == 1){
@ -394,7 +395,7 @@ class CCSpatialPhotoDisplayController: BaseController {
let lastImg = compositeFilter.outputImage! let lastImg = compositeFilter.outputImage!
DispatchQueue.main.async { [weak self] in DispatchQueue.main.async { [weak self] in
var ri = UIImage(ciImage: lastImg) var ri = UIImage(ciImage: lastImg)
ri = ri.getUpImg() ri = ri.getUpImg(imgOrigOritentation: self?.imgOritentation ?? .left)
self!.mImgView.image = ri self!.mImgView.image = ri
} }
} }
@ -512,9 +513,9 @@ class CCSpatialPhotoDisplayController: BaseController {
// //
func joinImages( leftImage:CIImage, rightImage:CIImage) -> CIImage { func joinImages( leftImage:CIImage, rightImage:CIImage) -> CIImage {
var left = UIImage(ciImage: leftImage ) var left = UIImage(ciImage: leftImage )
left = left.getUpImg() left = left.getUpImg(imgOrigOritentation: imgOritentation)
var right = UIImage(ciImage: rightImage ) var right = UIImage(ciImage: rightImage )
right = right.getUpImg() right = right.getUpImg(imgOrigOritentation: imgOritentation)
let imageWidth = left.size.width/2 + right.size.width/2 let imageWidth = left.size.width/2 + right.size.width/2
let imageHeight = left.size.height/2 let imageHeight = left.size.height/2

View File

@ -34,7 +34,6 @@ class CCSpatialShootController: BaseController {
var isRecording = false var isRecording = false
var imageCGImagePropertyOrientation:CGImagePropertyOrientation = CGImagePropertyOrientation.left//cgimage var imageCGImagePropertyOrientation:CGImagePropertyOrientation = CGImagePropertyOrientation.left//cgimage
var deviceOrientation = 1// 1,2 var deviceOrientation = 1// 1,2
let operationQueue:OperationQueue = OperationQueue()
var leftEyeVideoURL:URL? var leftEyeVideoURL:URL?
var rightEyeVideoURL:URL? var rightEyeVideoURL:URL?

View File

@ -59,12 +59,14 @@ class SpatialImageConvertor {
let lciImage = CIImage(cgImage: frames.first!) let lciImage = CIImage(cgImage: frames.first!)
let rciImage = CIImage(cgImage: frames[1]) let rciImage = CIImage(cgImage: frames[1])
var image = UIImage(data: imageData)
let left_uiimage = UIImage(ciImage: lciImage ) let left_uiimage = UIImage(ciImage: lciImage )
let left_uiimage_new = left_uiimage.getUpImg() let left_uiimage_new = left_uiimage.getUpImg(imgOrigOritentation: image?.imageOrientation ?? .left)
let right_uiimage = UIImage(ciImage: rciImage ) let right_uiimage = UIImage(ciImage: rciImage )
let right_uiimage_new = right_uiimage.getUpImg() let right_uiimage_new = right_uiimage.getUpImg(imgOrigOritentation: image?.imageOrientation ?? .left)
return (left_uiimage_new,right_uiimage_new) return (left_uiimage_new,right_uiimage_new)
} }

View File

@ -9,6 +9,29 @@ import Foundation
import UIKit import UIKit
extension UIImage { extension UIImage {
// func rotate( radians: CGFloat) -> UIImage? {
// //
// let radians = radians * CGFloat.pi / 180
// // 2D
// var transform = CGAffineTransform(rotationAngle: radians)
// //
// let rotatedViewBox = UIView(frame: CGRect(origin: .zero, size: self.size))
// rotatedViewBox.transform = transform
// let rotatedSize = rotatedViewBox.frame.size
// //
// UIGraphicsBeginImageContextWithOptions(rotatedSize, false, 1.0)
// defer { UIGraphicsEndImageContext() }
// //
// let rotatedView = UIView(frame: CGRect(origin: .zero, size: rotatedSize))
// rotatedView.transform = transform
// // image
// self.draw(in: rotatedView.frame)
// //
// return UIGraphicsGetImageFromCurrentImageContext()
// }
//
//
func rotate(radians: CGFloat) -> UIImage { func rotate(radians: CGFloat) -> UIImage {
let rotatedSize = CGRect(origin: .zero, size: size) let rotatedSize = CGRect(origin: .zero, size: size)
.applying(CGAffineTransform(rotationAngle: CGFloat(radians))) .applying(CGAffineTransform(rotationAngle: CGFloat(radians)))
@ -31,21 +54,22 @@ extension UIImage {
} }
// //
func getUpImg()->UIImage { func getUpImg(imgOrigOritentation:UIImage.Orientation)->UIImage {
let dg = getRotateFrom()
let dg = getRotateFrom(imgOrigOritentation)
let rotatedImage = rotate(radians:dg) let rotatedImage = rotate(radians:dg)
return rotatedImage return rotatedImage
} }
func getRotateFrom() ->CGFloat { func getRotateFrom(_ imgOrigOritentation:UIImage.Orientation) ->CGFloat {
print("..or:\(self.imageOrientation)") print("..or:\(imgOrigOritentation.rawValue)")
if self.imageOrientation == .left { if imgOrigOritentation == .left {
return -.pi/2
} else if imgOrigOritentation == .right{
return .pi/2 return .pi/2
} else if self.imageOrientation == .right{
return -.pi/2
} }
else { else {//downup便
return -.pi/2 return .pi
} }
} }
} }