Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming > #5399
| Newsgroups | comp.programming |
|---|---|
| Date | 2015-04-07 03:24 -0700 |
| References | (5 earlier) <eqli4hbboxue$.1wmsm2t0j4sto$.dlg@40tude.net> <984f3cf2-34c5-4b44-af34-9239556cda0e@googlegroups.com> <jc1uulo88s6b.1ps20e4vmk38o$.dlg@40tude.net> <b1fd7ae4-16e1-45f9-8e71-76fe164a2413@googlegroups.com> <1xn2gw54yj9py$.1bsje2m6r5s0e$.dlg@40tude.net> |
| Message-ID | <f8b0dc91-b970-478f-be54-486f2d5a4146@googlegroups.com> (permalink) |
| Subject | Re: darkening colour |
| From | fir <profesor.fir@gmail.com> |
W dniu wtorek, 7 kwietnia 2015 11:30:15 UTC+2 użytkownik Dmitry A. Kazakov napisał:
> On Tue, 7 Apr 2015 02:10:05 -0700 (PDT), fir wrote:
>
> > W dniu wtorek, 7 kwietnia 2015 10:52:12 UTC+2 użytkownik Dmitry A. Kazakov napisał:
> >> On Mon, 6 Apr 2015 09:36:46 -0700 (PDT), fir wrote:
> >>
> >>> wouldnt you be maybe so kind to put me a c draft here?
> >>
> >> I never touch C when I can.
> >>
> > so maybe in pseudocode? or maybe you could just copy and paste the
> > darkening (brightening?) routine here? i can revrite it to c here then,
>
> convert RGB to IHLS
> change the luminance component in IHLS
> convert IHLS to RGB
>
those two function below ?? ->
function To_IHLS (Color : Gdk_Color) return Gdk_IHLS_Color is
G : constant GUInt16 := Green (Color);
R : constant GUInt16 := Red (Color);
B : constant GUInt16 := Blue (Color);
FR : constant Gdk_Stimulus := Gdk_Stimulus (R);
FG : constant Gdk_Stimulus := Gdk_Stimulus (G);
FB : constant Gdk_Stimulus := Gdk_Stimulus (B);
Result : Gdk_IHLS_Color;
begin
Result.Luminance :=
To_Luminance (0.2126 * FR + 0.7152 * FG + 0.0722 * FB);
Result.Hue := To_Hue (Get_Hue (FR, FG, FB));
if B > G then
Result.Saturation :=
Gdk_Saturation (GUInt16'Max (R, B) - GUInt16'Min (R, G));
else
Result.Saturation :=
Gdk_Saturation (GUInt16'Max (R, G) - GUInt16'Min (R, B));
end if;
return Result;
end To_IHLS;
procedure To_RGB
( Color : Gdk_IHLS_Color;
Red : out Gdk_Stimulus;
Green : out Gdk_Stimulus;
Blue : out Gdk_Stimulus
) is
Luminance : constant Gdk_Stimulus :=
Gdk_Stimulus (Color.Luminance);
Hue : constant Gdk_Stimulus := Gdk_Stimulus (Color.Hue);
C1 : Gdk_Stimulus := Hue;
C2 : Gdk_Stimulus;
begin
if C1 >= Hue_Third then
C1 := C1 - Hue_Third;
if C1 >= Hue_Third then
C1 := C1 - Hue_Third;
end if;
end if;
if C1 >= Hue_Sixth then
C1 := C1 - Hue_Sixth;
end if;
C2 := sin (Hue_Third - C1, Hue_Range);
if C2 < S_Eps then
Red := Luminance;
Green := Luminance;
Blue := Luminance;
else
declare
C : constant Gdk_Stimulus :=
S_Factor * Gdk_Stimulus (Color.Saturation) / C2;
begin
C1 := C * cos (Hue, Hue_Range);
C2 := -C * sin (Hue, Hue_Range);
Red := Luminance + 0.7875 * C1 + 0.3714 * C2;
Green := Luminance - 0.2125 * C1 - 0.2059 * C2;
Blue := Luminance - 0.2125 * C1 + 0.9488 * C2;
end;
end if;
end To_RGB;
> BTW, depending on the operations required, you could do everything in IHLS
> and convert to RGB only when the image is transferred to the graphic
> context.
>
> > and you could say if it seems ok
>
> You never know if C code is OK, it is like playing tennis on a minefield
> using hand grenade for a ball.
>
> --
> Regards,
> Dmitry A. Kazakov
> http://www.dmitry-kazakov.de
Back to comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 01:12 -0700
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-06 10:52 +0200
Re: darkening colour Bartc <bc@freeuk.com> - 2015-04-06 11:21 +0100
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-06 12:44 +0200
Re: darkening colour Bartc <bc@freeuk.com> - 2015-04-06 12:54 +0100
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-06 14:27 +0200
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 05:51 -0700
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 04:38 -0700
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-06 14:52 +0200
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 06:25 -0700
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-06 17:02 +0200
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 09:36 -0700
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-07 10:52 +0200
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-07 02:10 -0700
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-07 11:30 +0200
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-07 03:24 -0700
Re: darkening colour "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2015-04-07 13:00 +0200
Re: darkening colour Bartc <bc@freeuk.com> - 2015-04-06 14:17 +0100
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 06:27 -0700
Re: darkening colour Bartc <bc@freeuk.com> - 2015-04-06 14:39 +0100
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 06:48 -0700
Re: darkening colour Bartc <bc@freeuk.com> - 2015-04-06 16:02 +0100
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-06 09:44 -0700
Re: darkening colour Bartc <bc@freeuk.com> - 2015-04-06 21:05 +0100
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-07 00:51 -0700
Re: darkening colour fir <profesor.fir@gmail.com> - 2015-04-07 01:12 -0700
csiph-web