Скорее всего, это происходит потому, что ваше исходное изображение имеет другую ориентацию (портрет), чем естественную ориентацию вашей камеры (пейзаж).
Если вы спросите UIImage
о его размере, он уже учитывает его ориентацию. Однако под капотом данные изображения хранятся в том виде, в котором они поступили с камеры, и это также то, над чем работает Core Image. Таким образом, в вашей цепочке фильтров изображение теряет информацию об ориентации.
Я думаю, вы можете исправить это, передав эту информацию в выходное изображение при создании:
let inputImage = AppDelegate.captured_iamge!
//...
let img = UIImage(cgImage: filtered_img_ref!, scale: inputImage.scale, orientation: inputImage.orientation)