Programación Web y Scripting > PHP
imagen redimensionada no la puedo guardar
(1/1)
Ruthmy:
Hola amigos,
Estoy trabajando con un pequeño script que redimensiona imagenes, pero la imagen redimensionada no se quiere guardar en la carpeta. Cuando ejecuto el programa sale este mensaje:
Warning: move_uploaded_file() expects parameter 1 to be string, resource given in C:apachefriendsxampphtdocsphp5miGrabarFichero3.php on line 42
Parece que dice que en la linea 42 le falta un parametro pero la verdad no lo se ver.
El script es este:
<?php
//Mediante un formulario se carga una imagen con el nombre "fichero" y se asigna a $nombre
$nombre=$_FILES["fichero"] ["tmp_name"];
//Se establecen la anchura y la altura para la nueva imagen redimensionada
$anchura=215;
$hmax=215;
//Se asigna a $datos los atributos de $nombre
$datos = getimagesize($nombre);
//Se averigua el tipo de la imagen y se crea la base para la nueva imagen con el tipo averiguado
if($datos[2]==1){$img = @imagecreatefromgif($nombre);}
if($datos[2]==2){$img = @imagecreatefromjpeg($nombre);}
if($datos[2]==3){$img = @imagecreatefrompng($nombre);}
//Uff!
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);
//Se asigna a $ext el tipo correspondiente a la nueva imagen (es el mismo de la imagen original)
if($datos[2]==1){$ext=".gif";}
if($datos[2]==2){$ext=".jpg";}
if($datos[2]==3){$ext=".png";}
//Se asigna a $nuevoNombre el nombre para la nueva imagen (aqui sin la extension)
$nuevoNombre="foto_1";
//Se asigna a $destino el path con el nombre de archivo nuevo completo
$destino = "imagenes2/".$nuevoNombre.$ext;
//Mas uff!
if($altura>$hmax){$anchura2=$hmax*$anchura/$altura;$altura=$hmax;$anchura=$anchura2;}
//Se asigna a $thumb un contenedor para la nueva imagen (creo)
$thumb = imagecreatetruecolor($anchura,$altura);
//Por fin se crea la nueva imagen redimensionada en $thumb
imagecopyresampled($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);
//Aqui se deberia grabar la nueva imagen en mi carpeta "imagenes2" pero no quiere
move_uploaded_file($thumb, $destino)or DIE("No ha funcionado");
//Aqui se liberan recursos de memoria
imagedestroy($thumb);
?>
Agradeceré una ayuda.
jodijo5:
Hola, y hice este script, es para redimensionar imagenes, le pasas el archivo de origen, luego el archvio que se guardará las dimensiones y listo, espero esto te sirva. espècificamente esto escala y recorta una imagen:
--- Código: PHP --- <?phpfunction clipImage($file, $dest, $width, $height) { $imSrc = imagecreatefromjpeg($file); $w = imagesx($imSrc); $h = imagesy($imSrc); $r=1; /*if($width/$height>$w/$h) { $nh = ($h/$w)*$width; $nw = $width; } else { $nw = ($w/$h)*$height; $nh = $height; }*/ if($w>$width && $h>$height){ if(($w-$width)>($h-$height)){ $nw=$width; $nh=$width*$h/$w; } else{ $nh=$height; $nw=$height*$w/$h; } } else{ if($w>$h){ $nw=$width; $nh=$width*$h/$w; } else{ $nh=$height; $nw=$height*$w/$h; } } //$nw=$w-$r; //$nh=$h-$r; $dx = ($width/2)-($nw/2); $dy = ($height/2)-($nh/2); $imTrg = imagecreatetruecolor($width, $height); imagecopyresampled($imTrg, $imSrc, $dx, $dy, 0, 0, $nw, $nh, $w, $h); imagedestroy($imSrc); imagejpeg($imTrg, $dest, 95); imagedestroy($imTrg);}?>
Ruthmy:
Hola "jodijo5",
Gracias por el script que me has facilitado.
Comenzare a estudiarlo para ver si logro guardar la imagen redimensionada.
Repito, muchas gracias.
Navegación
Ir a la versión completa