Quiero implementar un código que me permita redimencionar una imagen o todas las imágenes de un directorio, en donde se le pasan 2 argumentos que son:
argumento 1: nombre de la imagen o directorio.
argumento 2: el width solamente.
En donde si como argumento 1 se le pasa el nombre de imagen entonces la redimenciona, si se le pasa un directorio entonces redimenciona todas.
En donde como argumento 2 es el width deseado, si el width es mayor a la dimencion real de la imagen, entonces no se redimenciona, si sobre pasa, entonces se redimenciona pero utilizando niveles porcentuales. Vaya, si la imagen real es de: 500x850 y deseamos un width de 120, entonces el height lo calculamos en base a la reducción en porcentaje que sufrio el width de 800. Quedando una imagen de 120x204.
Mi código realiza todo el proceso solo que no me genera la imagen en si , solo genera imagenes en color negro, ya estuve viendo el code y no encuentro mi error, espero puedan ayudarme:
Aqui un Screenshot
Código
<?php function crear_imagen( $formato, $archivo ) { return $img; } # redimenciona una o varias imagenes que este dentro de un directorio # obtenido mediante el argumento y estableciendo las dimencion deseada o aproximada function redimencionar_imagen( $data, $sizeall ) { { $dir= $data; { { $new= $nombre. '_resized.'. $tipo; # nuevo nombre con tag y extensión $img= crear_imagen( "image/". $tipo, $dir.$buf ); # creamos imagen apartir de la principal $w= $size[0]; # extraemos width $h=$size[1]; # extraemos height # si es menor a la dimencion de thumbnails requerida if( $w<=$sizeall ) { $width= $w; $height= $h; } else # entonces es mayor, se redimenciona { $extract= $w-$sizeall; # obtenemos los pixeles que se quitaran a la dimencion original $porcentaje= ($extract*100)/$w; # obtenemos porcentaje que se le reducira al width original $width= $sizeall; # establecemos width deseado $height= $h-(($h*$porcentaje)/100); # obtenemos dimencion height segun la reduccion del porcentaje } imprimir_imagen( $thumb, "image/".$tipo, 0, $dir.$new, 100 ); # creamos imagen } } } else # entonces es un archivo, redimencionamos la imagen { $buf= $data; # copiamos para usar el mismo code de arriba $new= $nombre. '_resized.'. $tipo; # nuevo nombre con tag y extensión $img= crear_imagen( "image/". $tipo, $buf ); # creamos imagen apartir de la principal $w= $size[0]; # extraemos width $h=$size[1]; # extraemos height # si es menor a la dimencion de thumbnails requerida if( $w<=$sizeall ) { $width= $w; $height= $h; } else # entonces es mayor, se redimenciona { $extract= $w-$sizeall; # obtenemos los pixeles que se quitaran a la dimencion original $porcentaje= ($extract*100)/$w; # obtenemos porcentaje que se le reducira al width original $width= $sizeall; # establecemos width deseado $height= $h-(($h*$porcentaje)/100); # obtenemos dimencion height segun la reduccion del porcentaje } # obtenemos el directorio $dir=''; # recorremos arreglo excluyendo el ultimo valor para dar con el directorio real $dir .= $x[$i]; # concatenamos imprimir_imagen( $thumb, "image/".$tipo, 0, $dir.$new, 100 ); # creamos imagen } } ?>
Código
<?php function imprimir_imagen( $img, $formato, $modo, $url, $calidad ) { if( $modo==1 ) //se mostrara al tiempo header_imagen( $formato ); //entonces si modo es 0 no se imprime, se GUARDA return 0; } ?>