Class | Color::GrayScale |
In: |
lib/color.rb
lib/color/grayscale.rb |
Parent: | Object |
A colour object representing shades of grey. Used primarily in PDF document creation.
PDF_FORMAT_STR | = | "%.3f %s" | The format of a DeviceGrey colour for PDF. In color-tools 2.0 this will be removed from this package and added back as a modification by the PDF::Writer package. |
g | [RW] |
Creates a greyscale colour object from fractional values 0..1.
Color::GreyScale.from_fraction(0.5)
# File lib/color/grayscale.rb, line 23 23: def self.from_fraction(g = 0) 24: color = Color::GrayScale.new 25: color.g = g 26: color 27: end
Creates a greyscale colour object from percentages 0..100.
Color::GrayScale.new(50)
# File lib/color/grayscale.rb, line 32 32: def initialize(g = 0) 33: @g = g / 100.0 34: end
Compares the other colour to this one. The other colour will be converted to GreyScale before comparison, so the comparison between a GreyScale colour and a non-GreyScale colour will be approximate and based on the other colour‘s to_greyscale conversion. If there is no to_greyscale conversion, this will raise an exception. This will report that two GreyScale values are equivalent if they are within 1e-4 (0.0001) of each other.
# File lib/color/grayscale.rb, line 43 43: def ==(other) 44: other = other.to_grayscale 45: other.kind_of?(Color::GrayScale) and 46: ((@g - other.g).abs <= 1e-4) 47: end
Returns the brightness value for this greyscale value; this is the greyscale value.
# File lib/color/grayscale.rb, line 119 119: def brightness 120: @g 121: end
Lightens the greyscale colour by the stated percent.
# File lib/color/grayscale.rb, line 90 90: def lighten_by(percent) 91: g = [@g + (@g * (percent / 100.0)), 1.0].min 92: Color::GrayScale.from_fraction(g) 93: end
Present the colour as a DeviceGrey fill colour string for PDF. This will be removed from the default package in color-tools 2.0.
# File lib/color/grayscale.rb, line 51 51: def pdf_fill 52: PDF_FORMAT_STR % [ @g, "g" ] 53: end
Present the colour as a DeviceGrey stroke colour string for PDF. This will be removed from the default package in color-tools 2.0.
# File lib/color/grayscale.rb, line 57 57: def pdf_stroke 58: PDF_FORMAT_STR % [ @g, "G" ] 59: end
Returns the YIQ (NTSC) colour encoding of the greyscale value. This is an approximation, as the values for I and Q are calculated by treating the greyscale value as an RGB value. The Y (intensity or brightness) value is the same as the greyscale value.
# File lib/color/grayscale.rb, line 105 105: def to_yiq 106: y = @g 107: i = (@g * 0.596) + (@g * -0.275) + (@g * -0.321) 108: q = (@g * 0.212) + (@g * -0.523) + (@g * 0.311) 109: Color::YIQ.from_fraction(y, i, q) 110: end