Class: Color::GreyScale

### Home Classes Methods

### In Files

- lib/color.rb
- lib/color/grayscale.rb

### Parent

Object

### Methods

- ::from_fraction
- ::new
- #==
- #brightness
- #darken_by
- #html
- #lighten_by
- #pdf_fill
- #pdf_stroke
- #to_cmyk
- #to_grayscale
- #to_greyscale
- #to_hsl
- #to_rgb
- #to_yiq

### Files

- Changelog
- Install
- README

### Class/Module Index

Quicksearch

- Color
- Color::CMYK
- Color::CSS
- Color::GrayScale
- Color::GreyScale
- Color::Palette
- Color::Palette::Gimp
- Color::Palette::MonoContrast
- Color::RGB
- Color::RGB::Metallic
- Color::YIQ

No matching classes.

# Color::GreyScale

A colour object representing shades of grey. Used primarily in PDF document creation.

### Constants

PDF_FORMAT_STR

  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.

### Attributes

g[RW]

### Public Class Methods

from_fraction(g = 0) click to toggle source

Creates a greyscale colour object from fractional values 0..1.

    Color::GreyScale.from_fraction(0.5)

    # File lib/color/grayscale.rb, line 23
    def self.from_fraction(g = 0)
      color = Color::GrayScale.new
      color.g = g
      color
    end

new(g = 0) click to toggle source

Creates a greyscale colour object from percentages 0..100.

    Color::GrayScale.new(50)

    # File lib/color/grayscale.rb, line 32
    def initialize(g = 0)
      @g = g / 100.0
    end

### Public Instance Methods

==(other) click to toggle source

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
    def ==(other)
      other = other.to_grayscale
      other.kind_of?(Color::GrayScale) and
      ((@g - other.g).abs <= 1e-4)
    end

brightness() click to toggle source

Returns the brightness value for this greyscale value; this is the greyscale value.

    # File lib/color/grayscale.rb, line 119
    def brightness
      @g
    end

darken_by(percent) click to toggle source

Darken the RGB hue by the stated percent.

    # File lib/color/grayscale.rb, line 96
    def darken_by(percent)
      g = [@g - (@g * (percent / 100.0)), 0.0].max
      Color::GrayScale.from_fraction(g)
    end

html() click to toggle source

Present the colour as an HTML/CSS colour string.

    # File lib/color/grayscale.rb, line 67
    def html
      gs = "%02x" % to_255
      "##{gs * 3}"
    end

lighten_by(percent) click to toggle source

Lightens the greyscale colour by the stated percent.

    # File lib/color/grayscale.rb, line 90
    def lighten_by(percent)
      g = [@g + (@g * (percent / 100.0)), 1.0].min
      Color::GrayScale.from_fraction(g)
    end

pdf_fill() click to toggle source

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
    def pdf_fill
      PDF_FORMAT_STR % [ @g, "g" ]
    end

pdf_stroke() click to toggle source

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
    def pdf_stroke
      PDF_FORMAT_STR % [ @g, "G" ]
    end

to_cmyk() click to toggle source

Convert the greyscale colour to CMYK.

    # File lib/color/grayscale.rb, line 73
    def to_cmyk
      k = 1.0 - @g.to_f
      Color::CMYK.from_fraction(0, 0, 0, k)
    end

to_grayscale() click to toggle source

    # File lib/color/grayscale.rb, line 84
    def to_grayscale
      self
    end

Also aliased as: to_greyscale
to_greyscale() click to toggle source
Alias for: to_grayscale
to_hsl() click to toggle source

Returns the HSL colour encoding of the greyscale value.

    # File lib/color/grayscale.rb, line 113
    def to_hsl
      Color::HSL.from_fraction(0, 0, @g)
    end

to_rgb(ignored = true) click to toggle source

Convert the greyscale colour to RGB.

    # File lib/color/grayscale.rb, line 79
    def to_rgb(ignored = true)
      g = to_255
      Color::RGB.new(g, g, g)
    end

to_yiq() click to toggle source

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
    def to_yiq
      y = @g
      i = (@g * 0.596) + (@g * -0.275) + (@g * -0.321)
      q = (@g * 0.212) + (@g * -0.523) + (@g *  0.311)
      Color::YIQ.from_fraction(y, i, q)
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.