/**
  *
  *
  * @param Code $code
  * @param String $whereToSaveDirectory
  * @param String $fileName
  * @throws \InvalidArgumentException
  */
 public static function write(Code $code, $whereToSaveDirectory, $fileName = null)
 {
     if (!$code->isImage()) {
         throw new \InvalidArgumentException("Given code is not image code type.");
     }
     if (!file_exists($whereToSaveDirectory)) {
         mkdir($whereToSaveDirectory, 0755, true);
     }
     if ($fileName) {
         $whereToSaveDirectory .= "/" . $fileName;
     } else {
         $whereToSaveDirectory .= "/" . $code->getFileName();
     }
     $imageData = base64_decode($code->getCode());
     $success = file_put_contents($whereToSaveDirectory, $imageData);
     return $whereToSaveDirectory;
 }