处理红蓝立体卡顿问题
This commit is contained in:
parent
622c13d4bd
commit
1dfa7defe2
Binary file not shown.
@ -942,8 +942,8 @@
|
|||||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift"
|
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "227"
|
startingLineNumber = "228"
|
||||||
endingLineNumber = "227"
|
endingLineNumber = "228"
|
||||||
landmarkName = "screenOrientationRotate()"
|
landmarkName = "screenOrientationRotate()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
<Locations>
|
<Locations>
|
||||||
@ -990,8 +990,8 @@
|
|||||||
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift"
|
filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift"
|
||||||
startingColumnNumber = "9223372036854775807"
|
startingColumnNumber = "9223372036854775807"
|
||||||
endingColumnNumber = "9223372036854775807"
|
endingColumnNumber = "9223372036854775807"
|
||||||
startingLineNumber = "235"
|
startingLineNumber = "236"
|
||||||
endingLineNumber = "235"
|
endingLineNumber = "236"
|
||||||
landmarkName = "screenOrientationRotate()"
|
landmarkName = "screenOrientationRotate()"
|
||||||
landmarkType = "7">
|
landmarkType = "7">
|
||||||
<Locations>
|
<Locations>
|
||||||
|
|||||||
@ -22,18 +22,12 @@ enum VideoReaderError : Error {
|
|||||||
|
|
||||||
class CCSpatialPhotoDisplayController: BaseController {
|
class CCSpatialPhotoDisplayController: BaseController {
|
||||||
let kNowTimeToUserDefaultKey_PhotoDisplayController:String = "kNowTimeToUserDefaultKey_PhotoDisplayController"
|
let kNowTimeToUserDefaultKey_PhotoDisplayController:String = "kNowTimeToUserDefaultKey_PhotoDisplayController"
|
||||||
//保留外联屏幕
|
|
||||||
// lazy var externalWindow:UIWindow = {
|
|
||||||
// return UIWindow(frame: self.view.bounds)
|
|
||||||
// }()
|
|
||||||
//标记是否为横屏
|
//标记是否为横屏
|
||||||
var isLandscape:Bool = false
|
var isLandscape:Bool = false
|
||||||
var externalVC:ZZHExternalViewController?
|
var externalVC:ZZHExternalViewController?
|
||||||
var externalDispalylink:CADisplayLink?
|
var externalDispalylink:CADisplayLink?
|
||||||
var externalImageView:UIImageView?
|
var externalImageView:UIImageView?
|
||||||
|
|
||||||
// var player:AVPlayer = AVPlayer()
|
|
||||||
|
|
||||||
var outputVideoURL:URL?
|
var outputVideoURL:URL?
|
||||||
var dvc:UIDocumentViewController?
|
var dvc:UIDocumentViewController?
|
||||||
|
|
||||||
@ -64,7 +58,14 @@ class CCSpatialPhotoDisplayController: BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var currentSpatialType = 0//标记当前选中的浏览种类
|
var currentSpatialType = 0{//标记当前选中的浏览种类
|
||||||
|
didSet{
|
||||||
|
redBlueImage = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//保留红蓝立体的uiimage
|
||||||
|
var redBlueImage:UIImage?
|
||||||
|
|
||||||
//标记是否正在串流中:目前就是用于控制是否显示瞳距调节的slider部分
|
//标记是否正在串流中:目前就是用于控制是否显示瞳距调节的slider部分
|
||||||
var isPlayingOnExternalScreen = false
|
var isPlayingOnExternalScreen = false
|
||||||
@ -541,11 +542,12 @@ class CCSpatialPhotoDisplayController: BaseController {
|
|||||||
let lastImg = UIImage(ciImage: newpb)
|
let lastImg = UIImage(ciImage: newpb)
|
||||||
self.mImgView.image = lastImg
|
self.mImgView.image = lastImg
|
||||||
|
|
||||||
}else if(selectedIndex == 2){
|
}else if(selectedIndex == 2){//红蓝立体
|
||||||
|
|
||||||
let lastImg = joinImages_red_blue(lciImage: lciImage, rciImage: rciImage, scale: currentScale)
|
var ri = joinImages_red_blue(lciImage: lciImage, rciImage: rciImage, scale: currentScale,rbImage: redBlueImage)
|
||||||
var ri = UIImage(ciImage: lastImg)
|
// var ri = UIImage(ciImage: lastImg)
|
||||||
ri = ri.getUpImg(imgOrigOritentation: self.imgOritentation )
|
ri = ri.getUpImg(imgOrigOritentation: self.imgOritentation )
|
||||||
|
redBlueImage = ri
|
||||||
self.mImgView.image = ri
|
self.mImgView.image = ri
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -86,7 +86,9 @@ extension CCSpatialPhotoDisplayController {
|
|||||||
|
|
||||||
|
|
||||||
//合成红蓝立体图片
|
//合成红蓝立体图片
|
||||||
func joinImages_red_blue(lciImage:CIImage,rciImage:CIImage,scale: CGFloat) -> CIImage {
|
func joinImages_red_blue(lciImage:CIImage,rciImage:CIImage,scale: CGFloat,rbImage:UIImage?) -> UIImage {
|
||||||
|
var lastImg:UIImage? = rbImage
|
||||||
|
if lastImg == nil {
|
||||||
// 创建红色和蓝色滤镜
|
// 创建红色和蓝色滤镜
|
||||||
let redColorMatrix: [CGFloat] = [
|
let redColorMatrix: [CGFloat] = [
|
||||||
0.0, 0.0, 0.0, 0.0, 0.0, // 红色通道
|
0.0, 0.0, 0.0, 0.0, 0.0, // 红色通道
|
||||||
@ -109,7 +111,7 @@ extension CCSpatialPhotoDisplayController {
|
|||||||
let blueFilter = CIFilter(name: "CIColorMatrix")!
|
let blueFilter = CIFilter(name: "CIColorMatrix")!
|
||||||
blueFilter.setValue(rciImage, forKey: kCIInputImageKey)
|
blueFilter.setValue(rciImage, forKey: kCIInputImageKey)
|
||||||
blueFilter.setValue(CIVector(values: blueColorMatrix, count: blueColorMatrix.count), forKey: "inputBVector")
|
blueFilter.setValue(CIVector(values: blueColorMatrix, count: blueColorMatrix.count), forKey: "inputBVector")
|
||||||
var lastImg:CIImage? = nil
|
|
||||||
// 获取处理后的图像
|
// 获取处理后的图像
|
||||||
if let redOutputImage = redFilter.outputImage,
|
if let redOutputImage = redFilter.outputImage,
|
||||||
let blueOutputImage = blueFilter.outputImage {
|
let blueOutputImage = blueFilter.outputImage {
|
||||||
@ -121,13 +123,15 @@ extension CCSpatialPhotoDisplayController {
|
|||||||
let sharpenedFilter = CIFilter(name: "CISharpenLuminance")!
|
let sharpenedFilter = CIFilter(name: "CISharpenLuminance")!
|
||||||
sharpenedFilter.setValue(compositeFilter.outputImage, forKey: kCIInputImageKey)
|
sharpenedFilter.setValue(compositeFilter.outputImage, forKey: kCIInputImageKey)
|
||||||
sharpenedFilter.setValue(2, forKey: kCIInputSharpnessKey)
|
sharpenedFilter.setValue(2, forKey: kCIInputSharpnessKey)
|
||||||
lastImg = sharpenedFilter.outputImage!
|
lastImg = UIImage(ciImage: sharpenedFilter.outputImage! )
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if scale == 1 {
|
if scale == 1 {
|
||||||
return lastImg!
|
return lastImg!
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
let drawImg = UIImage(ciImage: lastImg!)
|
let drawImg = lastImg!
|
||||||
let drawImageSize = drawImg.size
|
let drawImageSize = drawImg.size
|
||||||
let newImgSize = CGSizeMake(drawImageSize.width * scale, drawImageSize.height * scale)
|
let newImgSize = CGSizeMake(drawImageSize.width * scale, drawImageSize.height * scale)
|
||||||
let newRect = CGRect(origin: CGPoint(x: (drawImageSize.width - newImgSize.width) * 0.5, y: (drawImageSize.height - newImgSize.height) * 0.5), size: newImgSize)
|
let newRect = CGRect(origin: CGPoint(x: (drawImageSize.width - newImgSize.width) * 0.5, y: (drawImageSize.height - newImgSize.height) * 0.5), size: newImgSize)
|
||||||
@ -135,10 +139,7 @@ extension CCSpatialPhotoDisplayController {
|
|||||||
drawImg.draw(in: newRect)
|
drawImg.draw(in: newRect)
|
||||||
let image = UIGraphicsGetImageFromCurrentImageContext()!
|
let image = UIGraphicsGetImageFromCurrentImageContext()!
|
||||||
UIGraphicsEndImageContext();
|
UIGraphicsEndImageContext();
|
||||||
|
return image
|
||||||
|
|
||||||
let ci = CIImage(cgImage: image.cgImage!)
|
|
||||||
return ci
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user