ios swift - uiimage array to video disorted and flipped -


i modified of code in time lapse builder class in link https://github.com/justinlevi/imagestovideo take in array of images instead of url.

everything seems working fine far taking images , creating video; however, i'm having issues way images being displayed in video.

this how images , under how on iphone: enter image description here

enter image description here

enter image description here

enter image description here

i feel issue in fillpixelbufferfromimage method:

func fillpixelbufferfromimage(image: uiimage, pixelbuffer: cvpixelbuffer, contentmode:uiviewcontentmode){      cvpixelbufferlockbaseaddress(pixelbuffer, 0)      let data = cvpixelbuffergetbaseaddress(pixelbuffer)     let rgbcolorspace = cgcolorspacecreatedevicergb()     let context = cgbitmapcontextcreate(data, int(self.outputsize.width), int(self.outputsize.height), 8, cvpixelbuffergetbytesperrow(pixelbuffer), rgbcolorspace, cgimagealphainfo.premultipliedfirst.rawvalue)      cgcontextclearrect(context, cgrectmake(0, 0, cgfloat(self.outputsize.width), cgfloat(self.outputsize.height)))      let horizontalratio = cgfloat(self.outputsize.width) / image.size.width     let verticalratio = cgfloat(self.outputsize.height) / image.size.height     var ratio: cgfloat = 1  //    print("horizontal ratio \(horizontalratio)") //    print("vertical ratio \(verticalratio)") //    print("ratio \(ratio)") //    print("image width -  \(image.size.width). image height - \(image.size.height)")       switch(contentmode) {     case .scaleaspectfill:       ratio = max(horizontalratio, verticalratio)     case .scaleaspectfit:       ratio = min(horizontalratio, verticalratio)     default:       ratio = min(horizontalratio, verticalratio)     }      //print("after ratio \(ratio)")       let newsize:cgsize = cgsizemake(image.size.width * ratio, image.size.height * ratio)      let x = newsize.width < self.outputsize.width ? (self.outputsize.width - newsize.width) / 2 : 0     let y = newsize.height < self.outputsize.height ? (self.outputsize.height - newsize.height) / 2 : 0      //print("x \(x)")     //print("y \(y)")      cgcontextdrawimage(context, cgrectmake(x, y, newsize.width, newsize.height), image.cgimage)      cvpixelbufferunlockbaseaddress(pixelbuffer, 0)   } 

please advise. thank you

edit: can please help? i'm extremely stuck in getting images show in video did when taken. thank help


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -