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