1
我在UIImage上應用銳化濾鏡時遇到了一些問題。使用CIFilters時獲取Alpha通道[如何清除]
該代碼完美地工作,但由此產生的UIImage有一個Alpha通道的問題。這反過來導致一些性能問題。
這是我初始化我的背景和過濾
EAGLContext *myEAGLContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
NSMutableDictionary *options = [[NSMutableDictionary alloc] init];
[options setObject: [NSNull null] forKey: kCIContextWorkingColorSpace];
context = [CIContext contextWithEAGLContext:myEAGLContext options:options];
sharpenLuminanceFilter = [CIFilter filterWithName:@"CISharpenLuminance"];
而且我用下面的函數來生成圖像
- (UIImage *)applySharpingFilter:(UIImage *)originalImage withValue:(float)value{
CIImage *image = [CIImage imageWithCGImage:originalImage.CGImage];
[sharpenLuminanceFilter setValue:image forKey:@"inputImage"];
[sharpenLuminanceFilter setValue:[NSNumber numberWithFloat:value] forKey:@"inputSharpness"];
CIImage * result = sharpenLuminanceFilter.outputImage;
CGImageRef cgimg = [context createCGImage:result fromRect:[result extent]];
double scaleFactor = [UIScreen mainScreen].scale;
UIImage *finalImage = [UIImage imageWithCGImage:cgimg scale:scaleFactor orientation:UIImageOrientationUp];
CGImageRelease(cgimg);
[sharpenLuminanceFilter setValue:nil forKey:@"inputImage"];
return finalImage;
}
反正我可以指定我想要生成的圖像是OPAQUE並且沒有Alpha通道?
這只是使整個圖片更白,並沒有消除alpha通道。如果您的圖像具有透明度,則滾動時該問題會影響性能 – Hosam
您的頻道是否訂購了RGBA以外的其他產品?如果是這樣,您可能需要更改偏向量,以使1與Alpha通道處於相同的位置。 – user1118321
我試過所有組合,所得圖像總是有一個alpha通道。有創建CGImage時刪除alpha通道的方法嗎? – Hosam