Eli Zaretskii writes: >> From: Joseph Turner >> Date: Fri, 01 Nov 2024 22:29:41 -0700 >> >> Here's `color-blend', a function to blend two colors into one. The >> patchset also replaces `vtable--color-blend' with `color-blend'. >> >> Examples of this function being implemented separately in the wild: >> >> https://github.com/alphapapa/prism.el/blob/2fa8eb5a9ca62a548d33befef4517e5d0266eb28/prism.el#L1044 >> https://oremacs.com/2015/04/28/blending-faces/ > > Thanks. > >> +--- >> +** New function 'color-blend'. >> +This function blends two RGB lists into one. > > This should explain what the function does, in terms that are clear > even to those who are not experts in this area. AFAIU, "color > blending" has at least two different meanings. > >> +(defun color-blend (a b &optional alpha) >> + "Blend the two colors A and B with ALPHA. >> +A and B should be lists (RED GREEN BLUE), where each element is >> +between 0.0 and 1.0, inclusive. ALPHA controls the influence A >> +has on the result and should be between 0.0 and 1.0, inclusive." > > The doc string should document the return value. Perhaps an example > of blending will also be a good addition to the doc string. > From: Yuri Khan > Subject: Re: [PATCH] New function: color-blend > To: Joseph Turner > Cc: Emacs Devel Mailing List > Date: Sat, 2 Nov 2024 18:26:57 +0700 (6 hours, 32 minutes, 20 seconds ago) > Flags: seen, personal > Maildir: /joseph-breatheoutbreathein/INBOX > On Sat, 2 Nov 2024 at 14:03, Joseph Turner wrote: > > Here's `color-blend', a function to blend two colors into one. > It would be nice to explicitly mention linear RGB space. Most > users[citation needed] these days are accustomed to colors specified > in sRGB space and naïve conversion dividing by 255 will not give the > desired blends. As an example, linear mixing black (0 0 0) with white > (1 1 1) yields (0.5 0.5 0.5). Naïve scaling will yield #808080 whereas > middle gray is somewhere around #bebebe in sRGB. Thanks for the feedback! Please see the attached revised patch.