iOS 漸變色 獲取RGBA 十六進(jìn)制轉(zhuǎn)顏色

漸變色:

typedef NS_ENUM(NSInteger, UIColorGradientDirection) {

? ? ///水平方向

? ? UIColorGradientDirectionHorizontal =1,

? ? ///垂直方向

? ? UIColorGradientDirectionVertical =2,

? ? ///對(duì)角線方向(左上-右下)

? ? UIColorGradientDirectionlLeftUpToRightDown =0,

? ? ///對(duì)角線方向(左下-右上)

? ? UIColorGradientDirectionlLeftDownToRightUp =3,

};


+ (UIColor*)gradientColorFromColors:(NSArray*)colors imgSize:(CGSize)imgSize gradientDirection:(UIColorGradientDirection)gradientDirection{? ??

? ? NSMutableArray *ar = [NSMutableArray array];

? ? for(UIColor*c?in?colors) {

? ? ? ? [ar addObject:(id)c.CGColor];

? ? }


? ? UIGraphicsBeginImageContextWithOptions(imgSize, YES, 1);

? ? CGContextRef context = UIGraphicsGetCurrentContext();

? ? CGContextSaveGState(context);

? ? CGContextClearRect(context,CGRectMake(0,0, imgSize.width, imgSize.height));?

? ? CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

? ? CGGradientRef gradient =CGGradientCreateWithColors(colorSpace, (CFArrayRef)ar,NULL);

? ? CGPoint start;

? ? CGPoint end;

? ? switch(gradientDirection) {

? ? ? ? case UIColorGradientDirectionHorizontal:

? ? ? ? ? ? start =CGPointMake(0.0,0.0);

? ? ? ? ? ? end =CGPointMake(imgSize.width,0);

? ? ? ? ? ? break;

? ? ? ? case UIColorGradientDirectionVertical:

? ? ? ? ? ? start =CGPointMake(0.0,0.0);

? ? ? ? ? ? end =CGPointMake(0, imgSize.height);

? ? ? ? ? ? break;

? ? ? ? case UIColorGradientDirectionlLeftUpToRightDown:

? ? ? ? ? ? start =CGPointMake(0.0,0.0);

? ? ? ? ? ? end =CGPointMake(imgSize.width, imgSize.height);

? ? ? ? ? ? break;

? ? ? ? case UIColorGradientDirectionlLeftDownToRightUp:

? ? ? ? ? ? start =CGPointMake(0.0, imgSize.height);

? ? ? ? ? ? end =CGPointMake(imgSize.width,0.0);

? ? ? ? ? ? break;

? ? ? ? default:

? ? ? ? ? ? break;

? ? }


? ? CGContextDrawLinearGradient(context, gradient, start, end, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation);

? ? UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

? ? CGGradientRelease(gradient);

? ? CGContextRestoreGState(context);

? ? CGColorSpaceRelease(colorSpace);

? ? UIGraphicsEndImageContext();

? ? return [UIColor colorWithPatternImage:image];

}

獲取RGBA

- (void)getRGB:(UIColor *)color{

? ? CGFloat red =0.0;

? ? CGFloat green =0.0;

? ? CGFloat blue =0.0;

? ? CGFloat alpha =0.0;

? ? [color?getRed:&red green:&green blue:&blue alpha:&alpha];

? ? NSLog(@"red:%f,green:%f,blue:%f,alpha:%f",red,green,blue,alpha);

}

十六進(jìn)制轉(zhuǎn)顏色

+ (UIColor*)colorWithHex:(long)hex{

? ? return? [UIColorcolorWithRed:(((hex &0xFF0000) >>16))/255.0 green:(((hex &0xFF00) >>8))/255.0 blue:((hex &0xFF))/255.0alpha:1.0];

}

+ (UIColor*)colorWithHex:(long)hexalpha:(float)alpha{

? ? return? [UIColorcolorWithRed:(((hex &0xFF0000) >>16))/255.0 green:(((hex &0xFF00) >>8))/255.0 blue:((hex &0xFF))/255.0 alpha:alpha];

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容