Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming > #5399

Re: darkening colour

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>

Show all headers | View raw


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


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