swift - CIFilter 后的图像旋转

标签 swift ciimage

我正在将 CIFilter 应用于肖像图像。由于某种原因,它顺时针旋转了 90 度。我怎样才能解决这个问题?我的代码在下面

var imgOrientation = oImage.imageOrientation
var imgScale = oImage.scale


let originalImage = CIImage(image: oImage)

var filter = CIFilter(name: "CIPhotoEffect"+arr[sender.tag-1000])
filter.setDefaults()
filter.setValue(originalImage, forKey: kCIInputImageKey)

var outputImage = filter.outputImage
var newImage = UIImage(CIImage:outputImage, scale:imgScale, orientation:imgOrientation)


cameraStill.image = newImage

最佳答案

我猜问题出在这一行:

var newImage = UIImage(CIImage:outputImage, scale:imgScale, orientation:imgOrientation)

这不是将滤镜渲染到 UIImage 中的方式。您要做的是调用 CIContext(options: nil) 来获取 CIContext,然后向该 CIContext 发送消息 createCGImage:fromRect: 来获取 CGImage。现在将该 CGImage 转换为 UIImage,并且在执行此操作时,您可以应用您的方向。

关于swift - CIFilter 后的图像旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30558516/

相关文章:

swift - 类名作为 swift 中的函数参数

ios - CIMaskedVariableBlur 创建不需要的边框

ios - 有什么方法可以在不将 CIImage 转换为 UIImage 或 CGImage 的情况下将 CIImage 转换为 NSData?

ios - objective-C : No Matter what I do CIDetector is always nil

ios9 - 裁剪 CVImageBuffer 的问题

ios - 如何获取 ScrollView 的contentOffset?

ios - 离屏渲染 Metal

swift - didOutputSampleBuffer 丢帧

将 C 结构实例复制到 Swift 后缺少成员

ios - 如何访问导航 Pane (左 Pane )中创建的文件夹的路径?