【问题标题】:Saving gif to UIImage将 gif 保存到 UIImage
【发布时间】:2016-09-12 23:55:42
【问题描述】:

我正在尝试转换捕获的视频并将其转换为 Gif,但在保存转换后的 Gif 并将其保存到 UIImage 对象时遇到问题。最后,我正在尝试使用此对象在 UIImageView 上显示 gif。另外,请注意我正在使用 NSGIF 将我的视频转换为 Gif。这是我的代码:

@IBOutlet weak var tempImageView3: UIImageView!

@IBAction func capture(sender: AnyObject) {
    if !isRecording {
        isRecording = true

        UIView.animateWithDuration(0.5, delay: 0.0, options: [.Repeat, .Autoreverse, .AllowUserInteraction], animations: { () -> () in
            self.cameraButton.transform = CGAffineTransformMakeScale(0.5, 0.5)
            }, completion: nil)

        let outputPath = NSTemporaryDirectory() + "output.mov"
        let outputFileURL = NSURL(fileURLWithPath: outputPath)
        let gifURL: NSURL

        NSGIF.createGIFfromURL(outputFileURL, withFrameCount: 16, delayTime: Float(0.2), loopCount: 0, completion: { (gifURL) -> Void in
            print("output saved \(gifURL)")
        })

        videoFileOutput?.startRecordingToOutputFileURL(outputFileURL, recordingDelegate: self)
    } else {
        isRecording = false
        UIView.animateWithDuration(0.5, delay: 1.0, options: [], animations: { () -> () in
            self.cameraButton.transform = CGAffineTransformMakeScale(1.0, 1.0)
            }, completion: nil)
        cameraButton.layer.removeAllAnimations()
        videoFileOutput?.stopRecording()

    }
}

【问题讨论】:

    标签: ios swift camera gif


    【解决方案1】:

    首先,您要声明一个不需要的常量let gifURL: NSURL。除了它是一个常量而不是变量的事实之外,因此无论如何都不能为其设置任何值。这与闭包中的gifURL 不同。这是第二个定义,无论如何都会覆盖第一个定义。删除let 行。

    其次,我不知道 NSGIF 库,但你的逻辑似乎倒退了。在调用videoFileOutput?.startRecordingToOutputFileURL 来创建该文件之前,您调用NSGIF.createGIFfromURL 并使用参数outputFileURL 指示要转换的文件。

    我认为您应该先进行录制,然后在停止录制时转换文件。

    因此,请尝试将 createGIFfromURL 调用移至 elsevideoFileOutput?.stopRecording() 之后。

    不过,我一直担心主线程上会发生这种情况。 videoFileOutput 对象似乎有一个delegate。录制完成后是否会收到事件?如果是这样,那将是转换文件的更好位置。

    【讨论】:

      猜你喜欢
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多