/**
  * Create a color palette from a file
  *
  * @static
  * @param string $filename
  * @param string $delimiter
  * @throws Exception
  * @return Palette
  */
 public static function fromFile($filename, $delimiter = ',')
 {
     $handle = @fopen($filename, 'r');
     if (!$handle) {
         throw new Exception('Failed to open file in loadColorPalette');
     }
     $palette = new Palette();
     $idx = 0;
     while (!feof($handle)) {
         $buffer = fgets($handle, 4096);
         $buffer = str_replace(chr(10), '', $buffer);
         $buffer = str_replace(chr(13), '', $buffer);
         $values = explode($delimiter, $buffer);
         $values = array_map('trim', $values);
         if (count($values) == 3) {
             $palette->setColor($idx, new Color($values[0], $values[1], $values[2]));
             $idx++;
         } elseif (count($values) == 1 && $values[0] !== '') {
             $palette->setColor($idx, new Color($values[0]));
         }
     }
     return $palette;
 }