修正方向旋转

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

View File

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

View File

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

View File

@ -9,6 +9,29 @@ import Foundation
import UIKit
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 {
let rotatedSize = CGRect(origin: .zero, size: size)
.applying(CGAffineTransform(rotationAngle: CGFloat(radians)))
@ -26,26 +49,27 @@ extension UIImage {
return rotatedImage ?? self
}
return self
}
//
func getUpImg()->UIImage {
let dg = getRotateFrom()
func getUpImg(imgOrigOritentation:UIImage.Orientation)->UIImage {
let dg = getRotateFrom(imgOrigOritentation)
let rotatedImage = rotate(radians:dg)
return rotatedImage
}
func getRotateFrom() ->CGFloat {
print("..or:\(self.imageOrientation)")
if self.imageOrientation == .left {
func getRotateFrom(_ imgOrigOritentation:UIImage.Orientation) ->CGFloat {
print("..or:\(imgOrigOritentation.rawValue)")
if imgOrigOritentation == .left {
return -.pi/2
} else if imgOrigOritentation == .right{
return .pi/2
} else if self.imageOrientation == .right{
return -.pi/2
}
else {
return -.pi/2
else {//downup便
return .pi
}
}
}