[英]iOS: CIColorInvert filter is not working on device
這是我反轉圖像的 colors 的代碼塊:
import Foundation
import UIKit
import CoreImage
extension UIImage {
static let defaultImage = UIImage(systemName: "person.circle.fill")!
func colorInverted() -> UIImage {
guard let ciImage = CIImage(image: self) else {
print("UIImage: Failed to get CIImage!")
return UIImage.defaultImage
}
guard let filter = CIFilter(name: "CIColorInvert") else {
print("UIImage: Failed to get filter!")
return UIImage.defaultImage
}
filter.setValue(ciImage, forKey: kCIInputImageKey)
guard let image = filter.outputImage else {
print("UIImage: Failed to get output image!")
return UIImage.defaultImage
}
return UIImage(ciImage: image)
}
}
這在模擬器上運行良好:
但在真實設備上,結果是全藍色圖像:
我已經搜索了一段時間,但無法找到解決方案。 任何人都可以幫忙嗎?
注意:我從 GitHub API 獲取圖像:
使用 CIContext 代替 UIImage(CIImage:)
func applyFilter(){
let image = CIImage(CGImage: myimage.image?.CGImage)
let filter = CIFilter(name: "CISepiaTone")
filter.setDefaults()
filter.setValue(image, forKey: kCIInputImageKey)
let context = CIContext(options: nil)
let imageRef = context.createCGImage(filter.outputImage, fromRect: image.extent())
myimage.image = UIImage(CGImage: imageRef)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.