继续调节瞳距

This commit is contained in:
bluesea 2024-04-25 14:15:36 +08:00
parent f2f42ff919
commit ec2009dc4a
7 changed files with 125 additions and 69 deletions

View File

@ -403,28 +403,13 @@
filePath = "SwiftProject/Project/Util/ZZHImageExtension.swift" filePath = "SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "79" startingLineNumber = "89"
endingLineNumber = "79" endingLineNumber = "89"
landmarkName = "getRotateFrom(_:)" landmarkName = "getRotateFrom(_:)"
landmarkType = "7"> landmarkType = "7">
<Locations> <Locations>
<Location <Location
uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - 8f7fed01daeafa98" uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - bb01223bea0e003"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__C.UIImage.getRotateFrom() -&gt; CoreGraphics.CGFloat"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "72"
endingLineNumber = "72"
offsetFromSymbolStart = "656">
</Location>
<Location
uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - bb01223bea0e32a"
shouldBeEnabled = "Yes" shouldBeEnabled = "Yes"
ignoreCount = "0" ignoreCount = "0"
continueAfterRunningActions = "No" continueAfterRunningActions = "No"
@ -434,12 +419,27 @@
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift" urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "72" startingLineNumber = "81"
endingLineNumber = "72" endingLineNumber = "81"
offsetFromSymbolStart = "636">
</Location>
<Location
uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - bb01223bea0e003"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__C.UIImage.getRotateFrom(__C.UIImageOrientation) -&gt; CoreGraphics.CGFloat"
moduleName = "SwiftProject"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "81"
endingLineNumber = "81"
offsetFromSymbolStart = "616"> offsetFromSymbolStart = "616">
</Location> </Location>
<Location <Location
uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - bb01223bea0e04d" uuid = "742F2A13-D3B1-41EF-8BDA-BE012155DB3C - bb01223bea0e145"
shouldBeEnabled = "Yes" shouldBeEnabled = "Yes"
ignoreCount = "0" ignoreCount = "0"
continueAfterRunningActions = "No" continueAfterRunningActions = "No"
@ -449,8 +449,8 @@
urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift" urlString = "file:///Users/aaa/Documents/IOS%20Dev/VR/SwiftProject/SwiftProject/Project/Util/ZZHImageExtension.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "79" startingLineNumber = "87"
endingLineNumber = "79" endingLineNumber = "87"
offsetFromSymbolStart = "616"> offsetFromSymbolStart = "616">
</Location> </Location>
</Locations> </Locations>
@ -514,8 +514,8 @@
filePath = "SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift" filePath = "SwiftProject/Project/View/Album/CCSpaceAlbumFliterPopView/CCSpaceAlbumFilterPopView2.swift"
startingColumnNumber = "9223372036854775807" startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807"
startingLineNumber = "458" startingLineNumber = "459"
endingLineNumber = "458" endingLineNumber = "459"
landmarkName = "collectionView(_:cellForItemAt:)" landmarkName = "collectionView(_:cellForItemAt:)"
landmarkType = "7"> landmarkType = "7">
</BreakpointContent> </BreakpointContent>

View File

@ -11,6 +11,8 @@ import Photos
import AVKit import AVKit
import VideoToolbox import VideoToolbox
let CustomPlayerShareSemaphore = DispatchSemaphore(value: 1)
extension ZZHCustomPlayer { extension ZZHCustomPlayer {
func getPlayerItem() -> AVPlayerItem { func getPlayerItem() -> AVPlayerItem {
@ -22,7 +24,9 @@ extension ZZHCustomPlayer {
print("self 被销毁了.....") print("self 被销毁了.....")
return return
} }
CustomPlayerShareSemaphore.wait()
weakSelf.convertFrame(request:request) weakSelf.convertFrame(request:request)
CustomPlayerShareSemaphore.signal()
} completionHandler: { ac, err in } completionHandler: { ac, err in
if err != nil { if err != nil {
@ -72,7 +76,7 @@ extension ZZHCustomPlayer {
} }
else { else {
ciImg = self.otherModeImgWithMode(mode: self.selectedIndex,compositionTime: compositionTime) ciImg = self.otherModeImgWithMode(mode: self.selectedIndex,compositionTime: compositionTime)
guard let ciImg else { guard ciImg != nil else {
print("未合成成功.....,此处将进行重新构建assetoutput,然后再次重拾") print("未合成成功.....,此处将进行重新构建assetoutput,然后再次重拾")
quickLoadAReaderWhenSeek(startCT: compositionTime) quickLoadAReaderWhenSeek(startCT: compositionTime)
ciImg = self.otherModeImgWithMode(mode: self.selectedIndex,compositionTime: compositionTime) ciImg = self.otherModeImgWithMode(mode: self.selectedIndex,compositionTime: compositionTime)

View File

@ -459,10 +459,10 @@ class CustomParamBoardView: UIView {
// //
func updateScaleTitleWithValue(value:Float) { func updateScaleTitleWithValue(value:Float) {
let minValue = 0.6 let minValue = 0.3
let maxValue = 1.5 let maxValue = 1.8
let resultValue = minValue + (maxValue - minValue) * Double(value) let resultValue = minValue + (maxValue - minValue) * Double(value)
let formattedValue = String(format: "\(NSLocalizedString("v1.6_缩放", comment: ""))%.f%%", (resultValue - 0.5) * 200) let formattedValue = String(format: "\(NSLocalizedString("v1.6_缩放", comment: ""))%.f%%", (resultValue) * 100)
self.scaleTitleLabel?.text = formattedValue self.scaleTitleLabel?.text = formattedValue
if let scaleCallback = self.scaleCallback { if let scaleCallback = self.scaleCallback {
scaleCallback(CGFloat(resultValue)) scaleCallback(CGFloat(resultValue))
@ -471,10 +471,10 @@ class CustomParamBoardView: UIView {
// //
func exUpdateScaleTitleWithValue(resultValue:CGFloat) { func exUpdateScaleTitleWithValue(resultValue:CGFloat) {
let formattedValue = String(format: "\(NSLocalizedString("v1.6_缩放", comment: ""))%.f%%", (resultValue - 0.5) * 200) let formattedValue = String(format: "\(NSLocalizedString("v1.6_缩放", comment: ""))%.f%%", (resultValue) * 100)
self.scaleTitleLabel?.text = formattedValue self.scaleTitleLabel?.text = formattedValue
let minValue = 0.6 let minValue = 0.3
let maxValue = 1.5 let maxValue = 1.8
// let resultValue = minValue + (maxValue - minValue) * Double(value) // let resultValue = minValue + (maxValue - minValue) * Double(value)
let v = (resultValue - minValue) / (maxValue - minValue) let v = (resultValue - minValue) / (maxValue - minValue)
self.scaleSlider?.slider?.value = Float(v) self.scaleSlider?.slider?.value = Float(v)

View File

@ -20,7 +20,7 @@ class PlayByTransferConvertor {
// print("sta.....>>>>>>>thread") // print("sta.....>>>>>>>thread")
while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() { while let nextSampleBuffer = assetOutput.copyNextSampleBuffer() {
var presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer) let presentationTime = CMSampleBufferGetPresentationTimeStamp(nextSampleBuffer)
// print("presentationTime: \(presentationTime) \ntime: \(time)") // print("presentationTime: \(presentationTime) \ntime: \(time)")
// if presentationTime! > time {//buffer>time, // if presentationTime! > time {//buffer>time,
// print("buffer>time,...") // print("buffer>time,...")
@ -186,30 +186,36 @@ class PlayByTransferConvertor {
// //
let n_left = getImgWithScale(image: left, scale: scale - 0.5) let (n_left,n_left_size) = getImgWithScale(image: left, scale: scale)
let n_right = getImgWithScale(image: right, scale: scale - 0.5) let (n_right,n_right_size) = getImgWithScale(image: right, scale: scale)
// //
let x_offset = CGFloat(abs(ed) * edS) //x let x_offset = CGFloat(abs(ed) * edS) //x
let imageWidth = left.size.width*0.5 - x_offset let imageWidth = left.size.width*0.5 - x_offset
let imageHeight = left.size.height let imageHeight = left.size.height
let ed_left = getImgWithED(image: n_left, imgWidth: imageWidth) let (ed_left,last_left_size) = getImgWithED(image: n_left, imgWidth: imageWidth,imageRealSize: n_left_size)
let ed_right = getImgWithED(image: n_right, imgWidth: imageWidth) let (ed_right,last_right_size) = getImgWithED(image: n_right, imgWidth: imageWidth,imageRealSize: n_right_size)
print("n_left_size:\(n_left_size)\nlast_left_size\(last_left_size)")
// testImageUi(image: ed_left)
let newImageSize = left.size let newImageSize = left.size
UIGraphicsBeginImageContextWithOptions(newImageSize, false, 1); UIGraphicsBeginImageContextWithOptions(newImageSize, false, 1);
if (ed > 0) {//,x0;,x if (ed > 0) {//,x0;,x
ed_left.draw(in: CGRect(x:0, y:0, width:imageWidth, height:imageHeight)) ed_left.draw(in: CGRect(x:0, y:0, width:last_left_size.width, height:last_left_size.height))
ed_right.draw(in: CGRect(x:left.size.width/2 + x_offset, y:0, width:imageWidth, height:imageHeight)) ed_right.draw(in: CGRect(x:left.size.width/2 + x_offset, y:0, width:last_right_size.width, height:last_right_size.height))
} }
else if (ed < 0) { else if (ed < 0) {
ed_left.draw(in: CGRect(x:x_offset, y:0, width:imageWidth, height:imageHeight)) ed_left.draw(in: CGRect(x:x_offset, y:0, width:last_left_size.width, height:last_left_size.height))
ed_right.draw(in: CGRect(x:left.size.width*0.5, y:0, width:imageWidth, height:imageHeight)) ed_right.draw(in: CGRect(x:left.size.width*0.5, y:0, width:last_right_size.width, height:last_right_size.height))
} }
else {// else {//
ed_left.draw(in: CGRect(x:0, y:0, width:imageWidth, height:imageHeight)) let leftRect = CGRect(x:(imageWidth - n_left_size.width) * 0.5, y:(imageHeight - n_left_size.height) * 0.5 , width:n_left_size.width, height:n_left_size.height)
ed_right.draw(in: CGRect(x:imageWidth, y:0, width:imageWidth, height:imageHeight)) ed_left.draw(in:leftRect )
let rightRect = CGRect(x:imageWidth + (imageWidth - n_right_size.width) * 0.5 , y:(imageHeight - n_right_size.height) * 0.5, width:n_right_size.width, height:n_right_size.height)
ed_right.draw(in:rightRect )
print("imageWidth:\(imageWidth) \ned_left.size:\(ed_left.size) \nl:\(leftRect) \nr:\(rightRect)")
} }
@ -220,31 +226,66 @@ class PlayByTransferConvertor {
return ci return ci
} }
// // scale,1
func getImgWithScale(image:UIImage,scale:CGFloat) -> UIImage { func getImgWithScale(image:UIImage,scale:CGFloat) -> (UIImage,CGSize) {
let dRect = CGSizeMake(image.size.width*0.5, image.size.height) //rect
let imgWidth = image.size.width*scale let originSize = CGSize(width: image.size.width*0.5, height: image.size.height*0.5)
let imgHeight = image.size.height*scale
UIGraphicsBeginImageContextWithOptions(dRect, false, 1); var newImage = image
image.draw(in: CGRectMake((dRect.width - imgWidth)*0.5, (dRect.height - imgHeight)*0.5, imgWidth, imgHeight)) var newSize = originSize//
let newImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext(); if scale > 1 {//,size,scale
return newImage //size,
//height
let Hs_add = (image.size.height - image.size.height*0.5)*(scale - 1)
//heightsize
newSize = CGSizeMake(originSize.width, originSize.height + Hs_add)
//scalesize
let cutSize = CGSizeMake((2 - scale)*(image.size.height * newSize.width/newSize.height),(2 - scale) * image.size.height)
let cutRect = CGRectMake((image.size.width - cutSize.width)*0.5, (image.size.height - cutSize.height) * 0.5, cutSize.width, cutSize.height)
newImage = image.imageAtRect(rect: cutRect)!
}
else if scale < 1 {//,size
//size
newSize = CGSizeMake(scale*originSize.width, scale*originSize.height)
} }
// return (newImage,newSize)
func getImgWithED(image:UIImage,imgWidth:CGFloat) -> UIImage { }
// let dRect = CGSizeMake(imgWidth, image.size.height)
// //,:imageimageRealSize,imagesizeimageRealSizesize,
// UIGraphicsBeginImageContextWithOptions(dRect, false, 1); func getImgWithED(image:UIImage,imgWidth:CGFloat,imageRealSize:CGSize) -> (UIImage,CGSize) {
// image.draw(in: CGRectMake((image.size.width - imgWidth)*0.5, 0, image.size.width, dRect.height)) if imageRealSize.width <= imgWidth {
// let newImage = UIGraphicsGetImageFromCurrentImageContext()!
// UIGraphicsEndImageContext(); print("瞳距返回,不用处理")
// return newImage return (image,imageRealSize)
// let dSize = CGSizeMake(imgWidth, image.size.height) }
let dRect = CGRectMake((image.size.width - imgWidth) * 0.5, 0, imgWidth, image.size.height) print("瞳距要处理")
let s = imageRealSize.height / image.size.height
let dRect = CGRectMake((imageRealSize.width - imgWidth) * s * 0.5, 0, imgWidth, image.size.height)
let newImage = image.imageAtRect(rect: dRect) let newImage = image.imageAtRect(rect: dRect)
return newImage! return (newImage!,CGSize(width: imgWidth, height: imageRealSize.height))
}
func testImageUi(image:UIImage) {
DispatchQueue.main.async {
var imageView = KWindow?.viewWithTag(9988) as? UIImageView
if let iv = imageView {
iv.image = image
}
else {
imageView = UIImageView(frame: CGRect(x: 20, y: 100, width: KScreenWidth*0.5, height: 260))
imageView?.tag = 9988
imageView?.backgroundColor = .red
imageView?.contentMode = .scaleAspectFit
imageView?.clipsToBounds = true
imageView?.image = image
KWindow?.addSubview(imageView!)
}
}
} }
func joinImages_backup( leftImage:CIImage, rightImage:CIImage) -> CIImage { func joinImages_backup( leftImage:CIImage, rightImage:CIImage) -> CIImage {

View File

@ -8,11 +8,21 @@
import Foundation import Foundation
import UIKit import UIKit
import CoreImage import CoreImage
let EXImageContext = CIContext()
extension UIImage { extension UIImage {
func imageAtRect(rect: CGRect) -> UIImage? { func imageAtRect(rect: CGRect) -> UIImage? {
// CGRect // CGRect
guard let cgImage = self.cgImage else { return nil } guard let cgImage = self.cgImage else {
guard let ciImage = self.ciImage else {
return nil
}
// CIImageCGImage
let imageRef = ciImage.cropped(to: rect)
//,
let final = EXImageContext.createCGImage(imageRef, from:imageRef.extent)
return UIImage(cgImage: final!)
}
let imageRef = cgImage.cropping(to: rect) let imageRef = cgImage.cropping(to: rect)
return imageRef == nil ? nil : UIImage(cgImage: imageRef!) return imageRef == nil ? nil : UIImage(cgImage: imageRef!)
} }

View File

@ -445,9 +445,10 @@ extension CCSpaceAlbumFilterPopView2:UICollectionViewDataSource, UICollectionVie
let model:CCSpaceAlbumFliterModel = dataSource[indexPath.item] let model:CCSpaceAlbumFliterModel = dataSource[indexPath.item]
// let s = UIScreen.main.scale
// cell.imageView.image = model.image?.preparingThumbnail(of: CGSize(width: cell.imageView.size.width*s, height: cell.imageView.size.height*s))
cell.imageView.image = model.image cell.imageView.image = model.image
if model.assetType == .image { if model.assetType == .image {
cell.frameCountLabel.text = NSLocalizedString("空间", comment: "") cell.frameCountLabel.text = NSLocalizedString("空间", comment: "")