【发布时间】:2014-09-10 01:56:01
【问题描述】:
我正在编写一个应用程序,让用户可以拍照然后对其进行编辑。我正在使用 UISliders 实现亮度/对比度/饱和度的工具,并且正在使用 Core Image Filter 类来执行此操作。当我打开应用程序时,我可以拍照并正确显示。但是,如果我选择编辑图片,然后使用任何描述的滑块工具,图像将逆时针旋转 90 度。这是有问题的代码:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
self.navigationItem.hidesBackButton = YES; //hide default nav
//get image to display
DBConnector *dbconnector = [[DBConnector alloc] init];
album.moments = [dbconnector getMomentsForAlbum:album.title];
Moment *mmt = [album.moments firstObject];
_imageView.image = [mmt.moment firstObject];
CGImageRef aCGImage = _imageView.image.CGImage;
CIImage *aCIImage = [CIImage imageWithCGImage:aCGImage];
_editor = [CIFilter filterWithName:@"CIColorControls" keysAndValues:@"inputImage", aCIImage, nil];
_context = [CIContext contextWithOptions: nil];
[self startEditControllerFromViewController:self];
}
//cancel and finish buttons
- (BOOL) startEditControllerFromViewController: (UIViewController*) controller {
[_cancelEdit addTarget:self action:@selector(cancelEdit:) forControlEvents:UIControlEventTouchUpInside];
[_finishEdit addTarget:self action:@selector(finishEdit:) forControlEvents:UIControlEventTouchUpInside];
return YES;
}
//adjust brightness
- (IBAction)brightnessSlider:(UISlider *)sender {
[_editor setValue:[NSNumber numberWithFloat:_brightnessSlider.value] forKey: @"inputBrightness"];
CGImageRef cgiimg = [_context createCGImage:_editor.outputImage fromRect:_editor.outputImage.extent];
_imageView.image = [UIImage imageWithCGImage: cgiimg];
CGImageRelease(cgiimg);
}
我相信问题源于brightnessSlider 方法,基于我放置的断点。有没有办法阻止我的照片自动旋转?如果没有,如何将其旋转回正常方向?
【问题讨论】:
标签: ios uiimage uislider core-image cifilter