Actualizacion escalado de imagen y crop

parent b1e24d6c
......@@ -201,6 +201,10 @@ class DefaultController extends Controller {
$filename = $idNutrapharm . "." . $data[1];
$fpc = file_put_contents("$uploadDir/$filename", $data[0]);
}
$log->debug("escalando imagen en registro nuevo...");
$this->scaleAndCrop("$uploadDir/$filename");
$log->debug("Retornando Respuesta a Usuario | Tipo : " . UsuarioNutrapharm::ESTADO_FOTO_ACTUALIZADA . " | Usuario : $idNutrapharm | Respuesta : " . Response::HTTP_OK);
return new JsonResponse(array("msg" => "La informacion ha sido ingresada con exito!", "tipo" => UsuarioNutrapharm::ESTADO_FOTO_ACTUALIZADA, "usuario" => $idNutrapharm), Response::HTTP_OK, ['content-type' => 'application/json']);
} else if ($tipo == UsuarioNutrapharm::ESTADO_FOTO_ACTUALIZADA && $idUsuarioNutraPharm != null) {
......@@ -241,6 +245,9 @@ class DefaultController extends Controller {
$usuario->save();
$filename = $idNutrapharm . "." . $data[1];
$fpc = file_put_contents("$uploadDir/$filename", $data[0]);
$log->debug("escalando imagen en actualizacion...");
$this->scaleAndCrop("$uploadDir/$filename");
}
$log->debug("Retornando Respuesta a Usuario | Tipo : " . UsuarioNutrapharm::ESTADO_FOTO_ACTUALIZADA . " | Usuario : $idUsuarioNutraPharm | Respuesta : " . Response::HTTP_OK);
return new JsonResponse(array("msg" => "La información se ha actualizado!", "tipo" => UsuarioNutrapharm::ESTADO_FOTO_ACTUALIZADA, "usuario" => $idNutrapharm), Response::HTTP_OK, ['content-type' => 'application/json']);
......@@ -281,6 +288,9 @@ class DefaultController extends Controller {
$fpc = file_put_contents("$uploadDir/$filename", $data[0]);
}
$log->debug("escalando imagen en actualizacion final...");
$this->scaleAndCrop("$uploadDir/$filename");
$log->debug("Iniciando union de fotos subidas por el usuario $idUsuarioNutraPharm...");
$this->merge($usuario->getUnuPathFotoInicial() . "." . $usuario->getUnuExtInicial(), $usuario->getUnuExtInicial(), $uploadDir . '/' . $filename, $usuario->getUnuExtFinal(), $uploadDir . '/' . $idNutrapharm . "_comparacion.png");
......@@ -311,6 +321,67 @@ class DefaultController extends Controller {
return new JsonResponse(array("msg" => "Se registro el compartir mensaje de facebook"), Response::HTTP_OK, ['content-type' => 'application/json']);
}
protected function scaleAndCrop($filename){
$log = Utiles::setLog('NutraPharmBundle\Controller\DefaultController:scaleAndCrop', 'nutrapharm/index');
$uploadDir = $this->getParameter('upload_dir');
$arrayDimension = $this->dimensionImage($filename);
$arrayOuput = array();
$arrayOuputCrop = array();
$stringSalida = "";
$stringSalidaCrop = "";
$argument = "";
$argumentCrop = "";
$esVertical = 0;
$esHorizontal = 0;
$parameterWidth = Utiles::getParametroConfiguracion("scale_width");
$parameterHeight = Utiles::getParametroConfiguracion("scale_height");
$coordenada = NULL;
//Escalado
if($arrayDimension["width"] > $arrayDimension["height"]){
$argument = "-y -i $filename -vf scale=-1:$parameterHeight $filename";
exec("/opt/ffmpeg-listas/ffmpeg-3.3.4-64bit-static/ffmpeg $argument ", $arrayOuput, $stringSalida);
$esHorizontal = 1;
}else if($arrayDimension["width"] < $arrayDimension["height"]){
$argument = "-y -i $filename -vf scale=$parameterWidth:-1 $filename";
exec("/opt/ffmpeg-listas/ffmpeg-3.3.4-64bit-static/ffmpeg $argument ", $arrayOuput, $stringSalida);
$esVertical = 1;
}else if($arrayDimension["width"] == $arrayDimension["height"]){
$argument = "-y -i $filename -vf scale=-1:$parameterHeight $filename";
exec("/opt/ffmpeg-listas/ffmpeg-3.3.4-64bit-static/ffmpeg $argument ", $arrayOuput, $stringSalida);
$esHorizontal = 1;
}
//Variable a buscar de la nueva imagen escalada
$arrayDimensionScaled = $this->dimensionImage($filename);
if($esHorizontal == 1 && $esVertical == 0){
$coordenada = ($arrayDimensionScaled["width"] - $parameterHeight) / 2;
}else if($esHorizontal == 0 && $esVertical == 1){
$coordenada = ($arrayDimensionScaled["height"] - $parameterWidth) / 2;
}
//Cortado
if($esHorizontal == 1 && $esVertical == 0){
$argumentCrop = "ffmpeg -y -i $filename -vf crop=$parameterWidth:$parameterHeight:$coordenada:0 $filename";
exec("/opt/ffmpeg-listas/ffmpeg-3.3.4-64bit-static/ffmpeg $argument ", $arrayOuputCrop, $stringSalidaCrop);
}else if($esHorizontal == 0 && $esVertical == 1){
$argumentCrop = "ffmpeg -y -i $filename -vf crop=$parameterWidth:$parameterHeight:0:$coordenada $filename";
exec("/opt/ffmpeg-listas/ffmpeg-3.3.4-64bit-static/ffmpeg $argument ", $arrayOuputCrop, $stringSalidaCrop);
}
}
protected function dimensionImage($filename){
list($width, $height) = getimagesize($filename);
return array("width" => $width, "height" =>$height);
}
protected function merge($filename_x, $fileType_x, $filename_y, $fileType_y, $filename_result) {
if (file_exists($filename_result)) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment