public function darker($shade = 0.7)
    {
        return $this->setFromArray(array(
                    max(array((integer) $this->getRed() * $shade, 0))
                    , max(array((integer) $this->getGreen() * $shade, 0))
                    , max(array((integer) $this->getBlue() * $shade, 0))
                    , $this->getAlpha()
        ));
    }