Tôi đang xây dựng một ứng dụng iOS dựa trên các hoạt động hình ảnh.Tăng/giảm độ sáng của hình ảnh bằng UISlider?
Tôi muốn tăng và giảm độ sáng của hình ảnh theo giá trị thanh trượt.
Tôi đã sử dụng mã này để làm điều này:
@IBOutlet var imageView: UIImageView!
@IBOutlet var uiSlider : UISlider!
override func viewDidLoad()
{
super.viewDidLoad()
var image = UIImage(named: "54715869.jpg")
imageView.image = image
uiSlider.minimumValue = -0.2
uiSlider.maximumValue = 0.2
uiSlider.value = 0.0
uiSlider.maximumTrackTintColor = UIColor(red: 0.1, green: 0.7, blue: 0, alpha: 1)
uiSlider.minimumTrackTintColor = UIColor.blackColor()
uiSlider.addTarget(self, action: "brightnesssliderMove:", forControlEvents: UIControlEvents.TouchUpInside)
uiSlider.addTarget(self, action: "brightnesssliderMove:", forControlEvents: UIControlEvents.TouchUpOutside)
}
func brightnesssliderMove(sender: UISlider)
{
var filter = CIFilter(name: "CIColorControls");
filter.setValue(NSNumber(float: sender.value), forKey: "inputBrightness")
var image = self.imageView.image
var rawimgData = CIImage(image: image)
filter.setValue(rawimgData, forKey: "inputImage")
var outpuImage = filter.valueForKey("outputImage")
imageView.image = UIImage(CIImage: outpuImage as CIImage)
}
Bây giờ câu hỏi của tôi là khi tôi tăng giá trị thanh trượt nó cũng làm tăng độ sáng của hình ảnh nhưng chỉ khi tôi thay đổi vị trí thanh trượt cho lần đầu tiên.
Khi tôi đang một lần nữa thay đổi vị trí của thanh trượt Tôi nhận errror này:
fatal error: unexpectedly found nil while unwrapping an Optional value.
Lỗi này đang đến tại dòng:
imageView.image = UIImage(CIImage: outpuImage as CIImage)
Lần này rawimgData
dữ liệu đến nil.
tại sao bạn thiết lập ' "inputImage"' hai lần? Và hơn thế nữa: bạn có chắc bạn đang cố gắng làm gì không? Theo tài liệu 'kCIInputBrightnessKey' không khả dụng trong iOS ... không chắc chắn thông tin đó có đúng không. – luk2302
tôi đã chỉnh sửa câu hỏi của mình. kCIInputBrightnessKey đang làm việc với nó –
Hãy xem câu trả lời này http://stackoverflow.com/a/15758267/2442804 để có được một ý tưởng tốt hơn về cách thức này có thể làm việc và những sai lầm của bạn ở đâu. – luk2302