iOS – 用button反转UIImage

我有一个简单的应用程序,我可以拍摄照片或select相机胶卷上的现有照片,然后在UIImageView中显示图像。 我想要一个button,您可以按下并反转选取的图像,然后在相机胶卷上显示。 我的问题是,如何反转UIImage的颜色,然后使用新的反转显示在ImageView? 我已经看到了与此相关的其他职位,但没有解释如何实现代码。 我对xcode相当陌生,并会感谢所有反馈。

这是我的视图控制器的.m文件:

#import "ViewController.h" @interface ViewController () @end @implementation ViewController @synthesize imageView; - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } -(IBAction)takePhoto { picker1 = [[UIImagePickerController alloc] init]; picker1.delegate = self; [picker1 setSourceType:UIImagePickerControllerSourceTypeCamera]; [self presentViewController:picker1 animated:YES completion:nil]; } -(IBAction)ChooseExisting { picker2 = [[UIImagePickerController alloc] init]; picker2.delegate = self; [picker2 setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; [self presentViewController:picker2 animated:YES completion:nil]; } -(IBAction)invertImage { } -(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { imageFinal = [info objectForKey:UIImagePickerControllerOriginalImage]; [imageView setImage:imageFinal]; [self dismissViewControllerAnimated:YES completion:nil]; } -(void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [self dismissViewControllerAnimated:YES completion:nil]; } @end 

我看到negetiveImage方法有很多代码。 这是一个简单的使用核心图像filter。

将Core Image Framework包含到您的项目中导入核心Image标头。

 #import <CoreImage/CoreImage.h> 

下面的代码应该返回你倒UIImage

 UIImage *inputImage = [UIImage imageNamed:@"imageName"]; CIFilter* filter = [CIFilter filterWithName:@"CIColorInvert"]; [filter setDefaults]; [filter setValue:inputImage.CIImage forKey:@"inputImage"]; UIImage *outputImage = [[UIImage alloc] initWithCIImage:filter.outputImage]; 

outputImage将被倒置

为了给你一个简单的答案,你可以反转UIImageView ,它有你的UIImage

要反转它,只需使用

 [yourImageView setTransform:CGAffineTransformMakeScale(-1, 1)]; // flip horizontally [yourImageView setTransform:CGAffineTransformMakeScale(1, -1)]; // flip vertically [yourImageView setTransform:CGAffineTransformMakeScale(-1, -1)]; // flip horizontally and vertically 

并使其恢复正常使用

 [yourImageView setTransform:CGAffineTransformIdentity]; // bring the view back to normal. 

希望这有助于我祝你一切顺利与你的应用程序:)