【问题标题】:Auto enhance UIImageView with no rotation不旋转自动增强 UIImageView
【发布时间】:2019-10-06 15:25:57
【问题描述】:

我已经在这两天了,希望你能帮助我。我正在尝试从 UIImageView 自动增强图像。以下代码有时会旋转和调整图像大小,我很难确定何时或为什么。由于缺乏关于该主题的帖子,我觉得我一定错过了一些超级简单的东西。谢谢大家!

// my UIImageView is self.imgOut 

var enhanceImg = CIImage(image: self.imgOut.image!)

let filters = enhanceImg!.autoAdjustmentFilters(options: nil)

for filter: CIFilter in filters {
  filter.setValue(enhanceImg, forKey: kCIInputImageKey)
  enhanceImg = filter.outputImage!
}

let enhancedImg = UIImage(ciImage: enhanceImg!, scale: self.imgOut.image!.scale, orientation: self.imgOut.image!.imageOrientation)
self.imgOut.image = enhancedImg

【问题讨论】:

  • 您是使用不同的图像还是始终使用相同的图像?你什么时候在你的项目中调用代码?我测试了代码并在 viewDidAppear 中运行它并看到了缩放效果
  • 不同的图像 - 一些来自相机,一些来自相机胶卷。我正在通过按钮操作运行它。
  • imageView是如何创建的?它有情节提要限制吗?在约束的情况下,设置它可能允许发生缩放:imageView.translatesAutoresizingMaskIntoConstraints = true
  • 抱歉,enhancedImg 的 translatesAutoresizingMaskIntoConstraints 应该设置为 false
  • 不,谢谢伙计……但仍在旋转和缩放:(

标签: ios swift image uiimageview swift5


【解决方案1】:

如果有人遇到这种情况 - 解决方法是使用 cgImage:

    let coreImage = CIImage(image: self.imgOut.image!)
    var enhanceImg = CIImage()
    let ciContext = CIContext(options: nil)

    let filters = coreImage!.autoAdjustmentFilters(options: [.enhance: true])

    for filter: CIFilter in filters {
        filter.setValue(coreImage, forKey: kCIInputImageKey)
        enhanceImg = filter.outputImage!
    }

    let filteredImageRef2 = ciContext.createCGImage(enhanceImg, from: enhanceImg.extent)
    self.imgOut.image = UIImage(cgImage: filteredImageRef2!, scale: self.imgOut.image!.scale, orientation: self.imgOut.image!.imageOrientation)

【讨论】:

    【解决方案2】:

    如你所见in docsautoAdjustmentFilters得到输入options: [CIImageAutoAdjustmentOption : Any]? = nil

    所以你需要指定选项(排除level选项) level 用于定向 crop 用于缩放

    let filters = enhanceImg!.autoAdjustmentFilters(options: [.level: false, .crop: false])
    

    【讨论】:

    • 哦,应该可以了。您能否发送包含翻转或裁剪的照片样本的存档以进行复制?
    • 这是一个更大项目的一部分。让我换一个新的试试看。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多