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:
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
Post a Comment