joooje
شنبه 09 مهر 1390, 09:21 صبح
سلام به همه
من میخوام که یه ترکیب سه تایی RGB رو به HSV تبدیل کنم
تو انجمن گشتم ولی حتی یه مورد مرتبط هم پیدا نکردم
از یه سایت دیگه این کد رو پیدا کردم
ولی نحوه استفاده از اون رو نمیدونم
type
THSV = record // hue saturation value (HSV)
Hue , Sat , Val : Double;
end;
{....}
function RGB2HSV (R,G,B : Byte) : THSV;
var
Min_, Max_, Delta : Double;
H , S , V : Double ;
begin
H := 0.0 ;
Min_ := Min (Min( R,G ), B);
Max_ := Max (Max( R,G ), B);
Delta := ( Max_ - Min_ );
V := Max_ ;
If ( Max_ <> 0.0 ) then
S := 255.0 * Delta / Max_
else
S := 0.0 ;
If (S <> 0.0) then
begin
If R = Max_ then
H := (G - B) / Delta
else
If G = Max_ then
H := 2.0 + (B - R) / Delta
else
If B = Max_ then
H := 4.0 + (R - G) / Delta
End
else
H := -1.0 ;
H := H * 60 ;
If H < 0.0 then H := H + 360.0;
with Result Do
begin
Hue := H ; // Hue -> 0..360
Sat := S * 100 / 255; // Saturation -> 0..100 %
Val := V * 100 / 255; // Value - > 0..100 %
end;
end;
یعنی نمیدونم الان چه طور میتونم سه تا عدد به عنوان RGB بدم و مقدار Hue ,Sat , VAl رو برای اون رنگ مورد نظرم به دست بیارم
ممنون میشم راهنمایی نمایید
من میخوام که یه ترکیب سه تایی RGB رو به HSV تبدیل کنم
تو انجمن گشتم ولی حتی یه مورد مرتبط هم پیدا نکردم
از یه سایت دیگه این کد رو پیدا کردم
ولی نحوه استفاده از اون رو نمیدونم
type
THSV = record // hue saturation value (HSV)
Hue , Sat , Val : Double;
end;
{....}
function RGB2HSV (R,G,B : Byte) : THSV;
var
Min_, Max_, Delta : Double;
H , S , V : Double ;
begin
H := 0.0 ;
Min_ := Min (Min( R,G ), B);
Max_ := Max (Max( R,G ), B);
Delta := ( Max_ - Min_ );
V := Max_ ;
If ( Max_ <> 0.0 ) then
S := 255.0 * Delta / Max_
else
S := 0.0 ;
If (S <> 0.0) then
begin
If R = Max_ then
H := (G - B) / Delta
else
If G = Max_ then
H := 2.0 + (B - R) / Delta
else
If B = Max_ then
H := 4.0 + (R - G) / Delta
End
else
H := -1.0 ;
H := H * 60 ;
If H < 0.0 then H := H + 360.0;
with Result Do
begin
Hue := H ; // Hue -> 0..360
Sat := S * 100 / 255; // Saturation -> 0..100 %
Val := V * 100 / 255; // Value - > 0..100 %
end;
end;
یعنی نمیدونم الان چه طور میتونم سه تا عدد به عنوان RGB بدم و مقدار Hue ,Sat , VAl رو برای اون رنگ مورد نظرم به دست بیارم
ممنون میشم راهنمایی نمایید