123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #import "NYXImagesHelper.h"
- static CIContext* __ciContext = nil;
- static CGColorSpaceRef __rgbColorSpace = NULL;
- CGContextRef NYXCreateARGBBitmapContext(const size_t width, const size_t height, const size_t bytesPerRow)
- {
-
-
-
- CGContextRef bmContext = CGBitmapContextCreate(NULL, width, height, 8, bytesPerRow, NYXGetRGBColorSpace(), kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst);
- return bmContext;
- }
- CGImageRef NYXCreateGradientImage(const size_t pixelsWide, const size_t pixelsHigh, const CGFloat fromAlpha, const CGFloat toAlpha)
- {
-
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray();
-
- CGContextRef gradientBitmapContext = CGBitmapContextCreate(NULL, pixelsWide, pixelsHigh, 8, 0, colorSpace, kCGImageAlphaNone);
-
-
- CGFloat colors[] = {toAlpha, 1.0f, fromAlpha, 1.0f};
-
- CGGradientRef grayScaleGradient = CGGradientCreateWithColorComponents(colorSpace, colors, NULL, 2);
- CGColorSpaceRelease(colorSpace);
-
- CGPoint gradientEndPoint = CGPointZero;
- CGPoint gradientStartPoint = (CGPoint){.x = 0.0f, .y = pixelsHigh};
-
- CGContextDrawLinearGradient(gradientBitmapContext, grayScaleGradient, gradientStartPoint, gradientEndPoint, kCGGradientDrawsAfterEndLocation);
- CGGradientRelease(grayScaleGradient);
-
- CGImageRef theCGImage = CGBitmapContextCreateImage(gradientBitmapContext);
- CGContextRelease(gradientBitmapContext);
-
- return theCGImage;
- }
- CIContext* NYXGetCIContext(void)
- {
- if (!__ciContext)
- {
- NSNumber* num = [[NSNumber alloc] initWithBool:NO];
- NSDictionary* opts = [[NSDictionary alloc] initWithObjectsAndKeys:num, kCIContextUseSoftwareRenderer, nil];
- __ciContext = [CIContext contextWithOptions:opts];
- }
- return __ciContext;
- }
- CGColorSpaceRef NYXGetRGBColorSpace(void)
- {
- if (!__rgbColorSpace)
- {
- __rgbColorSpace = CGColorSpaceCreateDeviceRGB();
- }
- return __rgbColorSpace;
- }
- void NYXImagesKitRelease(void)
- {
- if (__rgbColorSpace)
- CGColorSpaceRelease(__rgbColorSpace), __rgbColorSpace = NULL;
- if (__ciContext)
- __ciContext = nil;
- }
|