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