Автоматическое улучшение UIImageView без вращения - PullRequest
0 голосов
/ 06 октября 2019

Я занимаюсь этим уже два дня и, надеюсь, вы мне поможете. Я пытаюсь автоматически улучшить изображение из 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

Ответы [ 2 ]

0 голосов
/ 16 октября 2019

Если кто-нибудь сталкивался с этим - исправление заключается в использовании 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)
0 голосов
/ 06 октября 2019

Как вы можете видеть в документах , autoAdjustmentFilters получил ввод options: [CIImageAutoAdjustmentOption : Any]? = nil

Так что вам нужно указать опции (исключить level опция) level для ориентации crop для увеличения

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