swift - 为什么让 cimg = CIImage(image: self.img) 后图像旋转 90 度
问题描述
我正在使用苹果核心图像处理图像,当我将 UIImage 转换为 CIImage 时,图像似乎旋转了 90 度。主要代码如下,
struct PhotoDetailView: View {
@Binding var img:UIImage
var body: some View {
print(self.img.size)
let cimg = CIImage(image: self.img)
print(cimg?.extent.size)
let context = CIContext()
let filter = CIFilter(name: "CIPhotoEffectMono")!
filter.setValue(cimg, forKey: kCIInputImageKey)
let result = filter.outputImage!
print(result.extent.size)
打印输出:(3024.0, 4032.0) 可选((4032.0, 3024.0)) (4032.0, 3024.0)
解决方案
您应该保留图像的方向信息
let orientation = self.img.imageOrientation
let cimg = CIImage(image: self.img)
let context = CIContext()
...
let img2 = UIImage(cgImage: cgImage!, scale: 1.0, orientation: orientation)
推荐阅读
- javascript - scrollHeight 计算与 display:flex 不同
- javascript - 从 nodejs 中的路径中删除最后一个文件夹,带有尾随且没有尾随 /
- react-native - 更改文本不适用于导入的组件
- flutter - 颤振中有两个参数的AutoFillHints
- python - 为什么python字符串反向方法返回正常字符串?
- javascript - 如何在静态 HTML 文件中添加 JS 的动态时间戳
- python - 从几何级数中的numpy数组中删除值
- java - SNMP4J 与 MIB 浏览器不兼容吗?
- angular - Angular 库:如何从 npm 包切换到 npm sym 链接?
- swiftui - 如何发送 Scene.handlesExternalEvents(matching:) 接收的事件?