使用GPUImage cropFilter时如何保持宽高比?

时间:2015-10-05 13:11:47

标签: ios swift gpuimage gpuimagestillcamera android-gpuimageview

现在我正在申请像Instagram这样的方形电影。 我正在尝试在GPUImage中使用cropFilter来裁剪视频。 视频非常方形,但看起来有拉伸和破碎的比例。

我是这样写的。

videoView.frame = CGRect(x: 0, y: 0, width: self.view.frame.width, height: self.view.frame.width)
videoView.fillMode = kGPUImageFillModePreserveAspectRatioAndFill
self.view.addSubview(videoView)
videoCamera.outputImageOrientation = .Portrait
videoCamera.addTarget(videoView)

let documentDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0]

let fileName = "video.mp4"
pathToMovie = (documentDirectory as NSString).stringByAppendingPathComponent(fileName)
let movieURL = NSURL(fileURLWithPath: pathToMovie)
unlink((pathToMovie as NSString).UTF8String)

movieWriter = GPUImageMovieWriter(movieURL: movieURL, size: CGSize(width: 480, height: 480))
movieWriter.encodingLiveVideo = true
movieWriter.shouldPassthroughAudio = true
movieWriter.assetWriter.movieFragmentInterval = kCMTimeInvalid
videoCamera.addTarget(movieWriter)
videoCamera.audioEncodingTarget = movieWriter

let cropFilter = GPUImageCropFilter(cropRegion: CGRect(x: 0, y: 0.125, width: 1.0, height: 0.75))
videoCamera.addTarget(cropFilter)
cropFilter.addTarget(movieWriter)

videoCamera.startCameraCapture()
movieWriter.startRecording()

任何人,请帮忙。

0 个答案:

没有答案