问题描述
我正在调整图像的亮度。
首先,我使用 SwiftUI图像来显示图像:
Image(xxx)
.brightness(-0.5)
然后,我使用 CIImage 通过这种亮度调整来生成新图像:
func drawPic(img: UIImage) -> UIImage {
let cgimage: CGImage = img.cgImage!
let image = CIImage(cgImage: cgimage)
let parameters = [
"inputBrightness": Float(-0.5)
]
let outputimage = image.applyingFilter("CIColorControls",parameters: parameters)
let contextv = CIContext(options: nil)
let CgPic = contextv.createCGImage(outputimage,from: outputimage.extent)!
return UIImage(cgImage: CgPic)
}
但是当我预览这些图像时,我发现它们的颜色并不相同:
谁能告诉我为什么以及如何解决这个问题?
所有代码:
import SwiftUI
import UIKit
import CoreImage
import CoreImage.CIFilterBuiltins
struct Testimage: View {
var body: some View {
vstack{
Image("colorcircle2").resizable().frame(width: 200,height: 200,alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
Text("Original Image").padding(.bottom,24.0)
Image("colorcircle2").resizable().frame(width: 200,alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/).brightness(-0.5)
Text("SwiftUI Image").padding(.bottom,24.0)
Image(uiImage: drawPic(img: UIImage(imageLiteralResourceName: "colorcircle2"))).resizable().frame(width: 200,alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
Text("CIImage").padding(.bottom,24.0)
}
}
}
func drawPic(img: UIImage) -> UIImage {
let cgimage: CGImage = img.cgImage!
let image = CIImage(cgImage: cgimage)
let parameters = [
"inputBrightness": Float(-0.5)
]
let outputimage = image.applyingFilter("CIColorControls",from: outputimage.extent)!
return UIImage(cgImage: CgPic)
}
struct Testimage_Previews: PreviewProvider {
static var previews: some View {
Testimage()
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)