Ver Mensaje Individual
  #6 (permalink)  
Antiguo 30/09/2013, 09:32
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años
Puntos: 320
Respuesta: Modificar código para cambiar color de imagen generada

Hola, desconozco completamente que es CropZoom lo que puedo decirte es que las funciones que yo arme para tratar imagenes son estas:
Código PHP:
Ver original
  1. <?php
  2. //-----------------FUNCIONES PARA EL TRATAMIENTO DE IMAGENES JPG-PNG-GIF----------
  3.     function imagen_cargar($Imagen){
  4.         $Informacion = pathinfo($Imagen);
  5.         switch($Informacion['extension']){
  6.             case 'png':
  7.                 $ImgOriginalOriginal = imagecreatefrompng($Imagen);
  8.             break;
  9.             case 'gif':
  10.                 $ImgOriginalOriginal = imagecreatefromgif($Imagen);
  11.             break;
  12.             default:
  13.                 $ImgOriginalOriginal = imagecreatefromjpeg($Imagen);
  14.             break;
  15.         }
  16.         return $ImgOriginalOriginal;
  17.     }
  18.    
  19.     function imagen_guardar_objeto($ImgFinal , $Imagen , $Calidad){
  20.         $Informacion = pathinfo($Imagen);
  21.         switch($Informacion['extension']){
  22.             case 'png':
  23.                 imagepng($ImgFinal , $Imagen , $Calidad);
  24.             break;
  25.             case 'gif':
  26.                 imagegif($ImgFinal , $Imagen , $Calidad);
  27.             break;
  28.             default:
  29.                 imagejpeg($ImgFinal , $Imagen , $Calidad);
  30.             break;
  31.         }
  32.         return true;
  33.     }
  34.    
  35.     function imagen_formato_color($Color){ return round(round(($Color / 0x33)) * 0x33); }
  36.    
  37.     function imagen_colores_frecuentes($Imagen , $NumColores = 3 , $Ruido = 5) {
  38.         $Ruido = max(1 , abs((int)$Ruido));
  39.         $Colores = array();
  40.  
  41.         list($AnchoIMG , $AltoIMG) = getimagesize($Imagen);
  42.         $ImgOriginal = imagen_cargar($Imagen);
  43.  
  44.         for($x = 0; $x < $AnchoIMG; $x += $Ruido) {
  45.             for($y = 0; $y < $AltoIMG; $y += $Ruido) {
  46.              $RGB = imagecolorsforindex($ImgOriginal , imagecolorat($ImgOriginal, $x, $y));
  47.              $Rojo = imagen_formato_color($RGB['red']);
  48.              $Verde = imagen_formato_color($RGB['green']);
  49.              $Azul = imagen_formato_color($RGB['blue']);
  50.              $thisRGB = sprintf('%02X%02X%02X' , $Rojo , $Verde , $Azul);
  51.              if(array_key_exists($thisRGB , $Colores)) {
  52.                 $Colores[$thisRGB]++;
  53.              } else {
  54.                 $Colores[$thisRGB] = 1;
  55.              }
  56.           }
  57.        }
  58.        arsort($Colores);
  59.        return array_slice(array_keys($Colores) , 0 , $NumColores);
  60.     }
  61.  
  62.  
  63.  
  64.     function imagen_redimensionar($Imagen , $Ancho = 640 , $Alto = 480 , $Fondo = 'FFFFFF' , $MinAncho = 480 , $MinAlto = 360 ){
  65.  
  66.         list($AnchoIMG , $AltoIMG) = getimagesize($Imagen);
  67.         if(($AnchoIMG == '') or ($AltoIMG == '')){
  68.             return 'La imagen no se pudo cargar correctamente.';
  69.         }
  70.         if(($AnchoIMG < $MinAncho) or ($AltoIMG < $MinAlto)){
  71.             return 'La imagen no alcanza el tamaño minimo ('.$MinAncho.' x '.$MinAlto.') ('.$AnchoIMG.' x '.$AltoIMG.')';
  72.         }
  73.  
  74.         $ImgOriginal = imagen_cargar($Imagen);
  75.  
  76.         $ImgFinal=imagecreatetruecolor($Ancho , $Alto);
  77.        
  78.         if($Fondo == 'automatico'){
  79.             $imagen_colores_frecuentes = imagen_colores_frecuentes($Imagen);
  80.             $Fondo = $imagen_colores_frecuentes[0];
  81.         }
  82.        
  83.         $Fondo = '0x'.$Fondo;
  84.         imagefilledrectangle($ImgFinal , 0 , 0 , $Ancho-1 , $Alto-1 , ($Fondo*1));
  85.  
  86.  
  87.         if( $AnchoIMG > $AltoIMG){
  88.             $RelacionX = $Ancho / $AnchoIMG;
  89.             $AnchoDestino = $Ancho;
  90.             $AltoDestino = ceil($RelacionX * $AltoIMG);
  91.         } else {
  92.             $RelacionY = $Alto / $AltoIMG;
  93.             $AnchoDestino = ceil($RelacionY * $AnchoIMG);
  94.             $AltoDestino = $Alto;
  95.         }
  96.  
  97.         imagecopyresampled($ImgFinal , $ImgOriginal , (($Ancho-$AnchoDestino)/2) , (($Alto-$AltoDestino)/2) , 0 , 0 , $AnchoDestino  , $AltoDestino , $AnchoIMG , $AltoIMG);
  98.         imagedestroy($ImgOriginal);
  99.        
  100.         imagen_guardar_objeto($ImgFinal , $Imagen , 85);
  101.        
  102.         return 'ok';
  103.     }
  104. ?>

capaz te sirvan, aunque sea para canibalizarlas.

imagen_cargar = carga una imagen en jpg, gif o png desde el disco.
imagen_guardar_objeto = guarda una imagen en el disco.
imagen_formato_color = devuelve un color formateado.
imagen_colores_frecuentes = devuelve un array con los colores mas frecuentes en la imagen.
imagen_redimensionar = cambia el tamaño de una imagen
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios