小编Jam*_*mbs的帖子

使用前置摄像头时需要镜像视频方向和处理旋转

我无法弄清楚如何处理前置摄像头视频捕捉方向.在捕捉视频和图片以及拍摄照片时为前置摄像头处理的所有旋转时,我都为后置摄像头处理了所有旋转,并且除了前置摄像头视频捕获外,还保存了正确方向的捕获视频和图片.

第一个问题是,在横向模式下,视频无法以正确的方向正确保存.第二个问题是保存的视频是镜像的.虽然我知道如何使用前置摄像头处理图像的这种镜像效果,但我不确定要为视频处理它的内容.

我在尝试找到专门针对这一问题的任何内容时遇到了很多麻烦,但未能这样做.如果有人能指出我解决这个特定问题的线程,那就太好了.

无论哪种方式,这里调用的方法是在设备方向改变时处理视频方向.如果正在使用前置摄像头,我不确定要添加到我的代码中的确切内容.

/**************************************************************************
    DEVICE ORIENTATION DID CHANGE
    **************************************************************************/
    func deviceOrientationDidChange() {

        println("DEVICE ORIENTATION DID CHANGE CALLED")

        let orientation: UIDeviceOrientation = UIDevice.currentDevice().orientation

        //------ IGNORE THESE ORIENTATIONS ------
        if orientation == UIDeviceOrientation.FaceUp || orientation == UIDeviceOrientation.FaceDown || orientation == UIDeviceOrientation.Unknown || orientation == UIDeviceOrientation.PortraitUpsideDown || self.currentOrientation == orientation {

            println("device orientation does not need to change --- returning...")

            return
        }


        self.currentOrientation = orientation


        //------ APPLY A ROTATION USING THE STANDARD ROTATION TRANSFORMATION MATRIX in R3 ------

        /*

            x       y       z …
Run Code Online (Sandbox Code Playgroud)

ios swift

4
推荐指数
1
解决办法
5013
查看次数

如何在Racket中手动压平列表(Scheme)

如何在不使用内置的扁平功能进行球拍的情况下展平列表?

我知道flatten的默认实现是

(define (flatten lst)
  (cond 
    ((null? list)
      empty)
    ((list? (car lst))
      (append (flatten (car lst)) (flatten (cdr lst))))
    (else
      (cons (car lst) (flatten (cdr lst))))))
Run Code Online (Sandbox Code Playgroud)

但我不完全确定如何不使用flatten功能,因为我不知道它是如何在幕后工作.除了这段代码的实现之外,我找不到对此的良好解释.请有人解释一下

这是我非常糟糕的尝试,我几乎无能为力,因为这甚至不是很接近,也不会运行....

(define acc null)
(define (my-flatten lst)
  (cond
    [(null? lst) null]
    [(list? (car lst)) (help-flatten (car lst)) (append (cdr lst) acc)]
    [else (append (car lst) acc) (my-flatten (cdr lst))]))

(define (help-flatten subLst)
  (if (null? subLst)
      (set! acc null)
      (append (car subLst) acc))
  (help-flatten (cdr subLst)))
Run Code Online (Sandbox Code Playgroud)

scheme flatten racket list-processing

2
推荐指数
1
解决办法
7116
查看次数

标签 统计

flatten ×1

ios ×1

list-processing ×1

racket ×1

scheme ×1

swift ×1