public static function agregarImagen($imagen = null, $epigrafe = null, $coordenadas = null)
 {
     $respuesta = array();
     $datos = array('imagen' => $imagen, 'epigrafe' => $epigrafe);
     $rules = array('imagen' => array('mimes:jpeg,png,gif'));
     $validator = Validator::make($datos, $rules);
     if ($validator->fails()) {
         //return Response::make($validator->errors->first(), 400);
         //Si está todo mal, carga lo que corresponde en el mensaje.
         $respuesta['mensaje'] = $validator;
         $respuesta['error'] = 'no pasa';
     } else {
         $file = $imagen;
         $count = count($file->getClientOriginalName()) - 4;
         $filename = Str::limit(Str::slug($file->getClientOriginalName()), $count, "");
         $extension = $file->getClientOriginalExtension();
         //if you need extension of the file
         //$extension = File::extension($file['name']);
         $carpeta = '/uploads/';
         $directory = public_path() . $carpeta;
         //$filename = sha1(time() . Hash::make($filename) . time()) . ".{$extension}";
         //Pregunto para que no se repita el nombre de la imagen
         if (!is_null(Imagen::imagenPorNombre($filename . ".{$extension}"))) {
             $filename = $filename . "(" . Str::limit(sha1(time()), 3, "") . ")" . ".{$extension}";
         } else {
             $filename = $filename . ".{$extension}";
         }
         //$upload_success = $file->move($directory, $filename);
         //resize(width, height)
         if (Image::make($file)->resize(null, 800, function ($constraint) {
             $constraint->aspectRatio();
             $constraint->upsize();
         })->save($directory . $filename)) {
             $datos = array('nombre' => $filename, 'carpeta' => $carpeta, 'tipo' => 'G', 'ampliada' => '', 'estado' => 'A', 'fecha_carga' => date("Y-m-d H:i:s"), 'usuario_id_carga' => Auth::user()->id);
             $imagen = static::create($datos);
             $datos_lang = array('epigrafe' => $epigrafe, 'estado' => 'A', 'fecha_carga' => date("Y-m-d H:i:s"), 'usuario_id_carga' => Auth::user()->id);
             $idiomas = Idioma::where('estado', 'A')->get();
             foreach ($idiomas as $idioma) {
                 /*
                  if ($idioma->codigo != Config::get('app.locale')) {
                  $datos_lang['url'] = $idioma->codigo . "/" . $datos_lang['url'];
                  }
                 * 
                 */
                 $imagen->idiomas()->attach($idioma->id, $datos_lang);
             }
             $temporary = Image::make($file)->resize(null, 250, function ($constraint) {
                 $constraint->aspectRatio();
                 $constraint->upsize();
             })->save(public_path() . "/temporary/" . $filename);
             $imagen_chica = Imagen::agregarImagenChica($filename, $epigrafe, $imagen->id, $coordenadas);
             //Mensaje correspondiente a la agregacion exitosa
             $respuesta['mensaje'] = 'Imagen creada.';
             $respuesta['error'] = false;
             $respuesta['data'] = $imagen;
             //return Response::json('success', 200);
         } else {
             //Mensaje correspondiente a la agregacion exitosa
             $respuesta['mensaje'] = 'Imagen errónea.';
             $respuesta['error'] = true;
             $respuesta['data'] = null;
             //return Response::json('error', 400);
         }
     }
     return $respuesta;
 }