• Domingo 22 de Diciembre de 2024, 18:50

Autor Tema:  imagen redimensionada no la puedo guardar  (Leído 1721 veces)

Ruthmy

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
imagen redimensionada no la puedo guardar
« en: Jueves 11 de Marzo de 2010, 19:18 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: imagen redimensionada no la puedo guardar
« Respuesta #1 en: Domingo 14 de Marzo de 2010, 22:43 »
0
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
  1.  
  2. <?php
  3. function clipImage($file, $dest, $width, $height) {
  4.     $imSrc  = imagecreatefromjpeg($file);
  5.     $w      = imagesx($imSrc);
  6.     $h      = imagesy($imSrc);
  7.     $r=1;
  8.     /*if($width/$height>$w/$h) {
  9.         $nh = ($h/$w)*$width;
  10.         $nw = $width;
  11.     } else {
  12.         $nw = ($w/$h)*$height;
  13.         $nh = $height;
  14.     }*/
  15.     if($w>$width && $h>$height){
  16.         if(($w-$width)>($h-$height)){
  17.             $nw=$width;
  18.             $nh=$width*$h/$w;
  19.         }
  20.         else{
  21.             $nh=$height;
  22.             $nw=$height*$w/$h;
  23.         }
  24.     }
  25.     else{
  26.         if($w>$h){
  27.             $nw=$width;
  28.             $nh=$width*$h/$w;
  29.         }
  30.         else{
  31.             $nh=$height;
  32.             $nw=$height*$w/$h;
  33.         }
  34.     }
  35.     //$nw=$w-$r;
  36.     //$nh=$h-$r;
  37.     $dx = ($width/2)-($nw/2);
  38.     $dy = ($height/2)-($nh/2);
  39.     $imTrg  = imagecreatetruecolor($width, $height);
  40.     imagecopyresampled($imTrg, $imSrc, $dx, $dy, 0, 0, $nw, $nh, $w, $h);
  41.     imagedestroy($imSrc);
  42.     imagejpeg($imTrg, $dest, 95);
  43.     imagedestroy($imTrg);
  44. }
  45. ?>
  46.  
  47.  
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Ruthmy

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: imagen redimensionada no la puedo guardar
« Respuesta #2 en: Martes 16 de Marzo de 2010, 13:26 »
0
Hola "jodijo5",

Gracias por el script que me has facilitado.
Comenzare a estudiarlo para ver si logro guardar la imagen redimensionada.

Repito, muchas gracias.