public function modulate($brightness = null, $saturation = null, $hue = null) {
        $params = array();

        if ($brightness) {
            $params[] = 'b=' . (int) $brightness;
        }

        if ($saturation) {
            $params[] = 's=' . (int) $saturation;
        }

        if ($hue) {
            $params[] = 'h=' . (int) $hue;
        }

        if (!$params) {
            throw new InvalidArgumentException('brightness, saturation and/or hue must be specified');
        }

        return $this->addTransformation(sprintf('modulate:%s', implode(',', $params)));
    }