lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: PNG generation ignoring color


From: Valentin Villenave
Subject: Re: PNG generation ignoring color
Date: Sun, 17 May 2020 01:00:17 +0200

On 5/16/20, David Kastrup <address@hidden> wrote:
> Like the warning LilyPond prints out indicates, the X11 #rrggbb
> convention is not supported for specifying colors.  x11-color instead
> supports _named_ colors like "green".

Chris, you *could* simply change the definition or your function as follows:

%%%%

color =
#(define-music-function (parser location color) (string?)
   (define (hexa->decimal x)
     (let ((num (string->number x 16)))
       (if (= 0 num)
           num
           (exact->inexact
            (/ 255 num)))))
   (let* ((str (string-take
                (if (string-prefix? "#" color)
                    (string-drop color 1)
                    color)
                6))
          (r (string-take str 2))
          (g (string-drop (string-drop-right str 2) 2))
          (b (string-take-right str 2))
          (translated-color
           (map hexa->decimal
                (list r g b)))
          (lily-color (primitive-eval
                       (cons rgb-color translated-color))))
     #{
       %\override Staff.StaffSymbol.color = #lily-color
       \override Staff.LedgerLineSpanner.color = #lily-color
       \override Staff.Clef.color = #lily-color
       \override Staff.KeySignature.color = #lily-color
       \override Staff.TimeSignature.color = #lily-color
       %% Remove Staff. below to only affect individual voices:
       \override Staff.NoteHead.color = #lily-color
       \override Staff.Stem.color = #lily-color
       \override Staff.Flag.color = #lily-color
       \override Staff.Beam.color = #lily-color
       \override Staff.Accidental.color = #lily-color
       \override Staff.AccidentalCautionary.color = #lily-color
       \override Staff.Rest.color = #lily-color
       \override Staff.MultiMeasureRest.color = #lily-color
       \override Staff.MultiMeasureRestText.color = #lily-color
       \override Staff.MultiMeasureRestNumber.color = #lily-color
       \override Staff.Dots.color = #lily-color
       \override Staff.Slur.color = #lily-color
       \override Staff.PhrasingSlur.color = #lily-color
       \override Staff.Tie.color = #lily-color
       \override Staff.Script.color = #lily-color
       \override Staff.TextScript.color = #lily-color
       \override Staff.TupletBracket.color = #lily-color
       \override Staff.TupletNumber.color = #lily-color
       \override Staff.DynamicText.color = #lily-color
       \override Staff.DynamicTextSpanner.color = #lily-color
       \override Staff.DynamicLineSpanner.color = #lily-color
       \override Staff.Hairpin.color = #lily-color
     #}))

%%%%

Cheers,
-- V.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]