TestsTested | ✗ |
LangLanguage | Obj-CObjective C |
License | MIT |
ReleasedLast Release | Dec 2014 |
Maintained by Unclaimed.
HTCoreImage is a collection of convenience categories for Core Image. There are convenience constructors for every filter, annotated with NS_AVAILABLE_SINCE() macros so you know what's in iOS 5 vs iOS 6.
UIImage *sourceUIImage = [UIImage imageNamed:@"asdf"];
[[[sourceUIImage toCIImage] imageByApplyingFilters:@[
[CIFilter filterColorControlsSaturation:1 brightness:1 contrast:2],
[CIFilter filterColorMatrixWithRed:0.5 green:0.5 blue:1 alpha:1]]]
processToUIImageCompletion:^(UIImage *uiImage) {
NSLog(@"%@", uiImage);
}];
UIImage *sourceUIImage = [UIImage imageNamed:@"asdf"];
CIImage *sourceCIImage = [CIImage imageWithCGImage:sourceUIImage.CGImage];
CIFilter *colorControlsFilter = [CIFilter filterWithName:@"CIColorControls"];
[colorControlsFilter setDefaults];
[colorControlsFilter setValue:@(1) forKey:@"inputSaturation"];
[colorControlsFilter setValue:@(1) forKey:@"inputBrightness"];
[colorControlsFilter setValue:@(2) forKey:@"inputContrast"];
[colorControlsFilter setInputCIImage:sourceCIImage];
CIFilter *colorMatrixFilter = [CIFilter filterWithName:@"CIColorMatrix"];
[colorMatrixFilter setDefaults];
[colorMatrixFilter setValue:[CIVector vectorWithX:0.5 Y:0 Z:0 W:0]
forKey:@"inputRVector"];
[colorMatrixFilter setValue:[CIVector vectorWithX:0 Y:0.5 Z:0 W:0]
forKey:@"inputGVector"];
[colorMatrixFilter setValue:[CIVector vectorWithX:0 Y:0 Z:1 W:0]
forKey:@"inputBVector"];
[colorMatrixFilter setValue:[CIVector vectorWithX:0 Y:0 Z:0 W:1]
forKey:@"inputAVector"];
[colorMatrixFilter setInputCIImage:[colorControlsFilter outputImage]];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
{
CIContext *ciContext = [CIContext contextWithOptions:@{ kCIContextUseSoftwareRenderer : (id)kCFBooleanFalse }];
CGImageRef resultCGImage = [ciContext createCGImage:[colorMatrixFilter outputImage] fromRect:[[colorMatrixFilter outputImage] extent]];
UIImage *resultUIImage = [UIImage imageWithCGImage:resultCGImage scale:sourceUIImage.scale orientation:sourceUIImage.imageOrientation];
CGImageRelease(resultCGImage);
dispatch_async(dispatch_get_main_queue(), ^
{
NSLog(@"%@", resultUIImage);
});
});
The recommended installation method is cocoapods. Add this line to your Podfile:
pod 'HTCoreImage'
Tweet the author @jakejennings, and check out HotelTonight's engineering blog: http://engineering.hoteltonight.com
Also, check out HotelTonight's other iOS open source: