Jump to content

Tutorial: Evitar Que "homeslider" Modifique Los Colores De La Imagen Subida


Recommended Posts

He notado que cuando se suben imagenes al SLIDER de prestashop 1.6 (homeslider), este cambia sus colores, no es tan drastico el cambio pero si lo hace, el problema es cuando pones banner trabajados respetando los colores institucionales o de los proveedores de productos que se venden.
 

homeslider_modulo.jpg

 
 
en este caso, el homeslider utiliza la función resize de la clase ImageManager para mover la imagen, lo que hace que se aplique unos filtros para bajarle el tamaño y por tanto la calidad de la imagen:
 
ImageManager::resize
 
Para evitar este inconveniente, lo que debes hacer es modificar una línea de ese modulo, en la línea 509 o 517 (según la version que tengas)
 
verás la siguiente linea:

if ($error = ImageManager::validateUpload($_FILES['image_'.$language['id_lang']]))
	$errors[] = $error;
elseif (!$temp_name || !move_uploaded_file($_FILES['image_'.$language['id_lang']]['tmp_name'], $temp_name))
	return false;
elseif (!ImageManager::resize($temp_name, dirname(__FILE__).'/images/'.$salt.'_'.$_FILES['image_'.$language['id_lang']]['name'], null, null, $type))
	$errors[] = $this->displayError($this->l('An error occurred during the image upload process.'));

 
Solo deben cambiar el último ELSEIF por:

elseif (!copy($temp_name, dirname(__FILE__).'/images/'.$salt.'_'.$_FILES['image_'.$language['id_lang']]['name']))

 
quedando finalmente el código asi:
 

if ($error = ImageManager::validateUpload($_FILES['image_'.$language['id_lang']]))
	$errors[] = $error;
elseif (!$temp_name || !move_uploaded_file($_FILES['image_'.$language['id_lang']]['tmp_name'], $temp_name))
	return false;
elseif (!copy($temp_name, dirname(__FILE__).'/images/'.$salt.'_'.$_FILES['image_'.$language['id_lang']]['name']))
	$errors[] = $this->displayError($this->l('An error occurred during the image upload process.'));

Con esa modificación lo que se hace es evitar usar la clase de prestashop y usar la funcion COPIAR propia de PHP, de esa manera nos aseguramos que lo que estamos subiendo es lo que se mostrará, sin tener ningun tipo de alteración, sobre todo en el tema de colores

Edited by Dionisio_Fonseca (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Hola Dionisio,

 

gracias por el tutorial. Yo he notado lo mismo en la página de producto, subes la imagen de 800 x 800 y te la reduce a 458 x 458 y te baja también la calidad. ¿Alguna idea para solucionarlo y que no te reduzca la calidad de la imagen?

 

Gracias por anticipado.

 

Un saludo. 

Link to comment
Share on other sites

  • 1 month later...
  • nadie locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...