我正在使用一种方法将用相机拍摄的图像转换为黑白图像.我遇到的问题是,如果图像是在纵向模式下拍摄的,它会在下一个视图中旋转和拉伸.但是,如果采取景观,它只是找到.
当我将图像转换为黑白时,我只能复制此错误.这是我正在使用的方法.
我不是100%这个错误来自转换,但只有在转换时才会发生.哦是的.这是iOS 4.
///
- (UIImage *)convertImageToGrayScale:(UIImage *)image
{
// Create image rectangle with current image width/height
CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height);
// Grayscale color space
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
// Create bitmap content with current image size and grayscale colorspace
CGContextRef context = CGBitmapContextCreate(nil, image.size.width, image.size.height, 8, 0, colorSpace, kCGImageAlphaNone);
// Draw image into current context, with specified rectangle
// using previously defined context (with grayscale colorspace)
CGContextDrawImage(context, imageRect, [image CGImage]);
// Create bitmap image info …Run Code Online (Sandbox Code Playgroud) 所以我有一个UISlider正在使用CIFilter更改HUE.它的速度非常慢,因为我正在使用uislider时影响基本图像.
任何人都有关于如何更有效地做到这一点的建议?
// UI SLIDER
-(IBAction)changeSlider:(id)sender {
[self doHueAdjustFilterWithBaseImage:currentSticker.image
hueAdjust:[(UISlider *)sender value]];
}
//Change HUE
-(void)doHueAdjustFilterWithBaseImage:(UIImage*)baseImage hueAdjust:(CGFloat)hueAdjust {
CIImage *inputImage = [[CIImage alloc] initWithImage:baseImage];
CIFilter * controlsFilter = [CIFilter filterWithName:@"CIHueAdjust"];
[controlsFilter setValue:inputImage forKey:kCIInputImageKey];
[controlsFilter setValue:[NSNumber numberWithFloat:hueAdjust] forKey:@"inputAngle"];
//NSLog(@"%@",controlsFilter.attributes);
CIImage *displayImage = controlsFilter.outputImage;
CIContext *context = [CIContext contextWithOptions:nil];
if (displayImage == nil){
NSLog(@"Display NADA");
} else {
NSLog(@"RETURN Image");
currentSticker.image = [UIImage imageWithCGImage:[context createCGImage:displayImage fromRect:displayImage.extent]];
}
displayImage = nil;
inputImage = nil;
controlsFilter = nil;
}
Run Code Online (Sandbox Code Playgroud) 我想在应用程序变为非活动状态时完全重置我的应用程序.
我不希望任何州保留,有一个简单的方法来做到这一点?
这会在背景方法中完成吗?或申请代表中的任何其他州方法?