Foros del Web » Programando para Internet » PHP »

Subir y redimensionar imágenes

Estas en el tema de Subir y redimensionar imágenes en el foro de PHP en Foros del Web. Hola a todos/as. Mediante la siguiente aplicación subo imágenes y las redimensiono: archivo procesar.php: Código PHP: //en primer lugar la funcion redimensionar { function  redimensionar ( $type ,  $img_original ,  ...
  #1 (permalink)  
Antiguo 13/08/2010, 13:04
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Subir y redimensionar imágenes

Hola a todos/as. Mediante la siguiente aplicación subo imágenes y las redimensiono:

archivo procesar.php:

Código PHP:
//en primer lugar la funcion redimensionar
{
function 
redimensionar($type$img_original$img_nueva$img_nueva_anchura$img_nueva_altura$img_nueva_calidad)
{
$defecto 'imagenes/defecto.jpg';
if(
file_exists($img_original)) {
// crear imagen desde original
$type=strtolower($type);
switch(
$type)
{
case 
'jpeg'$img ImageCreateFromJPEG($img_original); break;
case 
'jpg'$img ImageCreateFromJPEG($img_original); break;
case 
'png'$img ImageCreateFromPNG($img_original); breaK;
case 
'gif'$img ImageCreateFromGIF($img_original); breaK;
case 
'wbmp'$img ImageCreateFromWBMP($img_original); break;
default: 
$img ImageCreateFromJPEG($defecto); break;
}
} else {
$img ImageCreateFromJPEG($defecto); 
}
if(!empty(
$img)) {
$new_w_R ImageSX($img);
$new_h_R ImageSY($img);
//$img_nueva_altura = 50;
// se calcula la relación alto/ancho
$aspect_ratio $new_h_R/$new_w_R;
$aspect_ratio2 $new_w_R/$new_h_R;
if (
$new_w_R >= $new_h_R){
// se ajusta al nuevo tamaño
$img_nueva_altura abs($img_nueva_anchura $aspect_ratio);
}
else{
$img_nueva_anchura abs($img_nueva_altura $aspect_ratio2);}
// crear imagen nueva

$thumb ImageCreateTrueColor($img_nueva_anchura,$img_nueva_altura);
// redimensionar imagen original copiandola en la imagen. La imagen se reajustará al nuevo tamaño
ImageCopyResampled($thumb,$img,0,0,0,0,$img_nueva_anchura,
$img_nueva_altura,ImageSX($img),ImageSY($img));
// guardar la imagen redimensionada donde indica $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
}
}

//a continuación subimos los archivos
$tot count($_FILES["archivo"]["name"]);
for (
$i 0$i $tot$i++)
{
//inseción de imagen
    
$fileSize $_FILES['archivo']['size'][$i];
$fileType $_FILES['archivo']['type'][$i]; 
$local $_FILES['archivo']['name'][$i];  
$remoto $_FILES['archivo']['tmp_name'][$i];
$prefijo substr(md5(uniqid(rand())),0,6);
$uploaddir "imagenes/"
$max=1500000//tamaño máximo permitido
if($filesize $max){
ini_set("memory_limit","32M");
$uploadfile $uploaddir.$prefijo."_".$_FILES['archivo']['name'][$i];    //archivo original

if (move_uploaded_file($remoto$uploadfile)) {
chmod($uploadfile0644);

//redimensionar    
$source=$uploadfile// archivo de origen
$dest2 =  $uploaddir."/".$prefijo."_".$local;//archivo grande
redimensionar("jpg",$source,$dest2,50,50,95);    //redimensionamos el archivo original a 50x50, archivo jpg o jpeg


}}}} 
el form:
Código PHP:
 echo "<form action=\"procesar.php/" reemplazo($datos["tituloart"]) . "\" ENCTYPE=multipart/form-data method=\"POST\">";
        echo 
"Imagen<br><input type=\"file\" name=\"archivo[]\" class=\"caja\">
echo "
Imagen<br><input type="file\" name=\"archivo[]\" class=\"caja\">
<br>"

bien. sube las imágenes a la carpeta imagenes/ del servidor. pero sucede una cosa:

si el archivo a subir es jpg o jpeg, los sube y los redimensiona; pero si es gif o png, no los redimensiona. los sube pero no los redimensiona y además da un error:

Código PHP:
imagecreatefromjpeg() [function.imagecreatefromjpeg]: imagenlaquesea.png is not a valid JPEG file 
pero me la sube, solo que sin redimensionar y dando ese error.

he probado poniendo la función redimensionar para png o gif:
redimensionar("png",$source,$dest2,50,50,95); //redimensionamos el archivo original a 50x50, archivo png
redimensionar("gif",$source,$dest2,50,50,95); //redimensionamos el archivo original a 50x50, archivo gif

pero nada. sigue dando el mismo error, aunque las imágenes las sube, ni las redimensiona y da ese error.

que me falta en el código?
__________________
desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen
  #2 (permalink)  
Antiguo 13/08/2010, 13:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Subir y redimensionar imágenes

sucede que en el default del switch() tratas cualquier imagen como JPEG, ¿esta bien eso?

¿que resulta si imprimes $type dentro de dicho default?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: redimensionar, subir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:12.