PDA

View Full Version : ColorToRGB



joooje
دوشنبه 11 مهر 1390, 18:47 عصر
سلام به همه دوستان
من میخوام بتونم که یه رنگی که از یه کلر دیالوگ به دست میارم را به سه تا عدد رنگی RBG تبدیل کنم
جستجو کردم و تنها چیزی که به دست آوردم استفاده از ColorToRGB بود و این پایینی کاملترینشون بود!




از همون ColorToRGB می تونید استفاده کنید. اگه عدد بدست اومده را در مبنا هگزا در نظر بگیرید 2 رقم سمت راست میزان رنگ قرمز، 2 رقم بعدی میزان رنگ سبز و 2 رقم سمت چپ میزان رنگ آبی را نشون میده. می تونید اونها را در متغییر هایی ذخیره کنید و به تابع glColor3ub پاس بدید.
ولی مشکل اینه که این دستور یه عدد میده که بعضی وقتها 5 رقمه و بعضی وقتها 6 و 7 و ...

حالا من چطوری میتونم اون سه تا عدد رو از این عدد به دست بیارم؟
توی این متن بالا منظور از مبنای هگز چی هست؟
ممنون از کمکتون

Felony
دوشنبه 11 مهر 1390, 19:09 عصر
if ColorDialog1.Execute then
begin
ShowMessage(ColorToString(GetRValue(ColorDialog1.C olor)));
ShowMessage(ColorToString(GetGValue(ColorDialog1.C olor)));
ShowMessage(ColorToString(GetBValue(ColorDialog1.C olor)));
end;

سعید صابری
دوشنبه 11 مهر 1390, 19:21 عصر
به این شکل هم میتونید عمل کنید


var Color : TColor;
R,G,B : Integer;
begin
if ColorDialog1.Execute then

Color:=ColorDialog1.Color;
R := Color and $ff;
G := (Color and $ff00) shr 8;
B := (Color and $ff0000) shr 16;