আমি নিম্নলিখিত কোড ব্যবহার করে একটি রঙ অবজেক্ট তৈরি করছি।
curView.backgroundColor = [[UIColor alloc] initWithHue:229 saturation:40 brightness:75 alpha:1];
আমি কীভাবে তৈরি রঙের বস্তু থেকে আরজিবি মানগুলি পুনরুদ্ধার করতে পারি?
আমি নিম্নলিখিত কোড ব্যবহার করে একটি রঙ অবজেক্ট তৈরি করছি।
curView.backgroundColor = [[UIColor alloc] initWithHue:229 saturation:40 brightness:75 alpha:1];
আমি কীভাবে তৈরি রঙের বস্তু থেকে আরজিবি মানগুলি পুনরুদ্ধার করতে পারি?
উত্তর:
const CGFloat *colors = CGColorGetComponents( curView.backgroundColor.CGColor );
এই লিঙ্কগুলি আরও বিশদ সরবরাহ করে:
colors
আপনি এমন কিছু লিখতে পারেন,CGFloat red = colors[0];
error: <EXPR>:3:1: error: 'CGColorGetComponents' has been replaced by property 'CGColor.components'
আইওএস 5 এ আপনি ব্যবহার করতে পারেন:
CGFloat red = 0.0, green = 0.0, blue = 0.0, alpha =0.0;
[multipliedColor getRed:&red green:&green blue:&blue alpha:&alpha];
NSKeyedArchiver
যেমন ডিজিট্রাইজেশন করে সমাধান করা যেতে পারে :multipliedColor = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject: multipliedColor]];
সুইফট 3 এবং 4
আমি দেখতে পেয়েছি যে cgColor.com.com উপাদানগুলি সর্বদা 4 বর্ণের মান ফেরত দেয় না, তাই আমি এটিকে পরিবর্তন করেছি যাতে এটি একটি সিকোলার মোড়ক থেকে পেয়ে যায়
extension UIColor {
var redValue: CGFloat{ return CIColor(color: self).red }
var greenValue: CGFloat{ return CIColor(color: self).green }
var blueValue: CGFloat{ return CIColor(color: self).blue }
var alphaValue: CGFloat{ return CIColor(color: self).alpha }
}
সুইফট 2
extension UIColor {
var red: CGFloat{ return CGColorGetComponents(self.CGColor)[0] }
var green: CGFloat{ return CGColorGetComponents(self.CGColor)[1] }
var blue: CGFloat{ return CGColorGetComponents(self.CGColor)[2] }
var alpha: CGFloat{ return CGColorGetComponents(self.CGColor)[3] }
}
এটি সবচেয়ে কার্যকর উপায় নয় তাই আমি এটি ব্যবহার করতে যাব না যেখানে একটি দৃশ্য ক্রমাগত পুনরায় আঁকানো হবে।
আশা করি এটি সহায়ক হবে
CGFloat red, green, blue, alpha;
//Create a sample color
UIColor *redColor = [UIColor redColor];
//Call
[redColor getRed: &red
green: &green
blue: &blue
alpha: &alpha];
NSLog(@"red = %f. Green = %f. Blue = %f. Alpha = %f",
red,
green,
blue,
alpha);
স্রেফ এটির জন্য একটি বিভাগ তৈরি করা হয়েছে।
NSLog(@"%f", [UIColor blueColor].blue); // 1.000000
এর মতো কিছু যায়:
typedef enum { R, G, B, A } UIColorComponentIndices;
@implementation UIColor (EPPZKit)
-(CGFloat)red
{ return CGColorGetComponents(self.CGColor)[R]; }
-(CGFloat)green
{ return CGColorGetComponents(self.CGColor)[G]; }
-(CGFloat)blue
{ return CGColorGetComponents(self.CGColor)[B]; }
-(CGFloat)alpha
{ return CGColorGetComponents(self.CGColor)[A]; }
@end
eppz!kit
আরও ইউআইকলর গুডির অংশ ।
UIColor *color = [[UIColor greenColor] retain]; //line 1
//OR(You will have color variable either like line 1 or line 2)
color = curView.backgroundColor;//line 2
CGColorRef colorRef = [color CGColor];
int _countComponents = CGColorGetNumberOfComponents(colorRef);
if (_countComponents == 4) {
const CGFloat *_components = CGColorGetComponents(colorRef);
CGFloat red = _components[0];
CGFloat green = _components[1];
CGFloat blue = _components[2];
CGFloat alpha = _components[3];
NSLog(@"%f,%f,%f,%f",red,green,blue,alpha);
}
[color release];
ডেভিড রিসের উত্তর 3 এর সুইফ্ট সংস্করণ:
extension UIColor {
var redValue: CGFloat{
return cgColor.components! [0]
}
var greenValue: CGFloat{
return cgColor.components! [1]
}
var blueValue: CGFloat{
return cgColor.components! [2]
}
var alphaValue: CGFloat{
return cgColor.components! [3]
}
}
আইওএস 2.0 যেহেতু এ একটি ব্যক্তিগত উদাহরণস্বরূপ পদ্ধতি আছে UIColor
বলা styleString
যা রঙ একজন আরজিবি বা RGBA স্ট্রিং উপস্থাপনা ফেরৎ, এমনকি আরজিবি স্থান বাহিরে whiteColor মত রং জন্য।
উদ্দেশ্য গ:
@interface UIColor (Private)
- (NSString *)styleString;
@end
// ...
[[UIColor whiteColor] styleString]; // rgb(255,255,255)
[[UIColor redColor] styleString]; // rgb(255,0,0)
[[UIColor lightTextColor] styleString]; // rgba(255,255,255,0.600000)
সুইফটে আপনি ইন্টারফেসটি প্রকাশের জন্য একটি ব্রিজিং শিরোলেখ ব্যবহার করতে পারেন। খাঁটি সুইফ্টের @objc
সাহায্যে আপনার ব্যক্তিগত পদ্ধতি এবং প্রোটোকলের সাহায্যে একটি প্রোটোকল তৈরি করতে হবে unsafeBitCast
UIColor
:
@objc protocol UIColorPrivate {
func styleString() -> String
}
let white = UIColor.whiteColor()
let red = UIColor.redColor()
let lightTextColor = UIColor.lightTextColor()
let whitePrivate = unsafeBitCast(white, UIColorPrivate.self)
let redPrivate = unsafeBitCast(red, UIColorPrivate.self)
let lightTextColorPrivate = unsafeBitCast(lightTextColor, UIColorPrivate.self)
whitePrivate.styleString() // rgb(255,255,255)
redPrivate.styleString() // rgb(255,0,0)
lightTextColorPrivate.styleString() // rgba(255,255,255,0.600000)
শীর্ষে ভোট দেওয়া উত্তর পুরানো:
ত্রুটি:: 3: 1: ত্রুটি: 'সিজি কালারগেটকম্পোন্টস' সম্পত্তি 'সিজি কলর ডট কম অংশ' দ্বারা প্রতিস্থাপন করা হয়েছে
পরিবর্তে, ব্যবহার করুন
myUIColor.cgColor.components
আমি UITableViewStyle
"UITableViewStyleGrouped" এর পটভূমি রঙটি পেতে চাইলে viewDidAppear:
পদ্ধতিটিতে আমি কোডটি যুক্ত করেছি:
NSLog(@"%@", self.tableView.backgroundView.backgroundColor);
এটি আমার প্রত্যাশা মতো করেছিল এবং লগটি ফিরিয়ে দিয়েছে:
UIDeviceRGBColorSpace 0.937255 0.937255 0.956863 1
সুতরাং সংক্ষেপে শুধু টাইপ করুন NSLog(@"%@", [UIColor whateverColor]);
HandyUIKit ব্যবহার করা এটি সত্যই সহজ করে তোলে :
import HandyUIKit
let color = UIColor(red: 0.1, green: 0.2, blue: 0.3, alpha: 0.4)
// get any of the rgba values
color.rgba.red // => 0.1
color.rgba.green // => 0.2
color.rgba.blue // => 0.3
color.rgba.alpha // => 0.4
মান পেতেhsba
একই ধরণের বিকল্প রয়েছে :
let color = UIColor(hue: 0.1, saturation: 0.2, brightness: 0.3, alpha: 0.4)
// you can get any of the hsba values, too
color.hsba.hue // => 0.1
color.hsba.saturation // => 0.2
color.hsba.brightness // => 0.3
color.hsba.alpha // => 0.4
কেবল এটি কার্থেজ ব্যবহার করে ইনস্টল করুন এবং আপনি যেতে ভাল।
আমি আসা করি এটা সাহায্য করবে!
আমি এবং অন্যান্য রঙ নিয়ন্ত্রণের জন্য কিছু দরকারী ম্যাক্রো তৈরি করেছি:
আপনার ক্ষেত্রে আপনি কেবল ব্যবহার করতে হবে
getRGBA(myColor, red, green, blue, alpha);
NSLog(@"Red Value: %f", red);
NSLog(@"Blue Value: %f", green);
NSLog(@"Green Value: %f", blue);
#define rgba(r,g,b,a) [UIColor colorWithRed:((float)(r))/255.0f green:((float)(g))/255.0f blue:((float)(b))/255.0f alpha:a]
#define rgb(r,g,b) rgba(r, g, b, 1.0f)
#define rgbaf(r,g,b,a) [UIColor colorWithRed:(r) green:(g) blue:(b) alpha:a]
#define rgbf(r,g,b) rgbaf(r, g, b, 1.0f)
#define rgba_fromColor(__color, __r, __g, __b, __a) \
CGFloat __r, __g, __b, __a;\
UIColor *__unpackedColor = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:__color]];/*Bring system colors into compatible color-space (e.g. DarkGrayColor)*/\
[__unpackedColor getRed:&__r green:&__g blue:&__b alpha:&__a];
#define getRGBA(__color, __r, __g, __b, __a) hsba_fromColor(__color, __r, __g, __b, __a)
#define getRed(__color) (\
(^float (void){\
rgba_fromColor(__color, r, g, b, a);\
return r;\
})()\
)
#define getGreen(__color) (\
(^float (void){\
rgba_fromColor(__color, r, g, b, a);\
return g;\
})()\
)
#define getBlue(__color) (\
(^float (void){\
rgba_fromColor(__color, r, g, b, a);\
return b;\
})()\
)
#define getAlpha(__color) (\
(^float (void){\
rgba_fromColor(__color, r, g, b, a);\
return a;\
})()\
)
#define hsba(h,s,b,a) [UIColor colorWithHue:((float)(h))/360.0f saturation:((float)(s))/100.0f brightness:((float)(b))/100.0f alpha:a]
#define hsb(h,s,b) hsba(h, s, b, 1.0f)
#define hsbaf(h,s,b,a) [UIColor colorWithHue:(h) saturation:(s) brightness:(b) alpha:a]
#define hsbf(h,s,b) rgbaf(h, s, b, 1.0f)
#define hsba_fromColor(__color, __h, __s, __b, __a) \
CGFloat __h, __s, __b, __a;\
UIColor *__unpackedColor = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:__color]];/*Bring system colors into compatible color-space (e.g. DarkGrayColor)*/\
[__unpackedColor getHue:&__h saturation:&__s brightness:&__b alpha:&__a];
#define getHSBA(__color, __h, __s, __b, __a) rgba_fromColor(__color, __h, __s, __b, __a)
#define getHue(__color) (\
(^float (void){\
hsba_fromColor(__color, h, s, b, a);\
return h;\
})()\
)
#define getSaturation(__color) (\
(^float (void){\
hsba_fromColor(__color, h, s, b, a);\
return s;\
})()\
)
#define getBrightness(__color) (\
(^float (void){\
hsba_fromColor(__color, h, s, b, a);\
return b;\
})()\
)
/*
///already defined in RGBA macros
#define getAlpha(__color) (\
(^float (void){\
hsba_fromColor(__color, h, s, b, a);\
return a;\
})()\
)
*/
আপনার ইউআইকিঅলরটি এটির মতো সেট করুন
UIColor.FromRGB(128, 179, 255)
এটি জামারিন আইওএসের জন্য ... তবে নিশ্চিতভাবেই দ্রুতগতিতে এই জাতীয় পদ্ধতি রয়েছে।