修正方向旋转
This commit is contained in:
parent
c26908cfac
commit
7904b23756
@ -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
|
||||
|
||||
@ -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?
|
||||
|
||||
@ -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)
|
||||
}
|
||||
|
||||
|
||||
@ -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 {//对于down、up的暂时不用管,因为空间照片要求横着拍,所以这里就先随便写一个方向,待后面需要时再做调整
|
||||
return .pi
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user