Foros del Web » Programando para Internet » PHP »

problema con redimensionar

Estas en el tema de problema con redimensionar en el foro de PHP en Foros del Web. Hola yo nuevamente ayudaaaaaaaaa, no me dimensiona imagen , me sale un monton de simbolo cuando llamo a la función q me redimensiona. Otra cosita ...
  #1 (permalink)  
Antiguo 05/11/2008, 03:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 15 años, 8 meses
Puntos: 0
problema con redimensionar

Hola yo nuevamente ayudaaaaaaaaa, no me dimensiona imagen , me sale un monton de simbolo cuando llamo a la función q me redimensiona. Otra cosita utilizo la function.getimagesize para saber el tipo de archivo, porque si lo hago por $_FILES['imagen']['type'] no puedo q me reconozco imagen en png o gif, por eso utilizo esa función, q me arroja error tambien , les dejo el codigo

/***********/
Código php:
Ver original
  1. <?
  2. ini_set("memory_limit" , "25M") ;
  3. function iPintaImagenRedimensionada ($sDirImagen, $bEscalable, $ancho, $alto)
  4.  
  5. {
  6.   // tomamos los datos de la imagen
  7.   $vDatosImg = @getimagesize($sDirImagen);
  8.   // if (!$vDatosImg) return -8;
  9.   // Recogemos el Tipo Mime
  10.   if(isset($vDatosImg['mime']))
  11.   $sTipo = $vDatosImg['mime'];
  12.   else if(isset($vDatosImg[2]))
  13.   $sTipo = @image_type_to_mime_type($vDatosImg[2]);
  14.    
  15.    // Recogemos la imagen a partir de la dirección dada ($sDirImagen)
  16.    switch($vDatosImg[2])
  17.    {
  18.      case IMAGETYPE_GIF:
  19.      $imgOrigen = @imagecreatefromgif($sDirImagen);
  20.      break;
  21.      case IMAGETYPE_JPEG:
  22.      $imgOrigen = @imagecreatefromjpeg($sDirImagen);
  23.      break;
  24.      case IMAGETYPE_PNG:
  25.      $imgOrigen = imagecreatefrompng($sDirImagen);
  26.      break;
  27.    }
  28.  
  29. /*
  30. Establecemos los tamaños:
  31. - Si bEscalable viene como true.
  32. Se multiplican los valores recibidos para ancho y alto
  33. por el ancho y alto de la imagen,
  34. así 0.5 sería la mitad de la imagen y 2 sería el doble
  35. - Si bEscalable viene como false.
  36. Los tamaños serán los pasados por ancho y alto directamente
  37. - Si ancho o alto vienen como 0 o numero negativo,
  38. el valor de esta propiedad será asignada proporcionalmente con
  39. el valor de la otra.
  40. - Si ancho y alto vienen como 0 o numero negativo, Error
  41. */
  42.  
  43. if (!(is_numeric($ancho)) || !(is_numeric($alto))) return -20;
  44.  
  45. if ($bEscalable==true)
  46. {
  47.    if ($ancho > 0)
  48.    {
  49.      $ancho *= $vDatosImg[0];
  50.      if ($alto > 0)
  51.      $alto *= $vDatosImg[1];
  52.      else
  53.      $alto = $vDatosImg[1] * ($ancho / $vDatosImg[0]);
  54.    }
  55.    else
  56.       if ($alto > 0)
  57.       {
  58.        $alto *= $vDatosImg[1];
  59.        $ancho = $vDatosImg[0] * ($alto / $vDatosImg[1]);
  60.       }
  61.   }
  62.   else
  63.   {
  64.     if (($ancho > 0) && ($alto < 1))
  65.        $alto = $vDatosImg[1] * ($ancho / $vDatosImg[0]);
  66.     else
  67.        if (($alto > 0) && ($ancho < 1))
  68.        $ancho = $vDatosImg[0] * ($alto / $vDatosImg[1]);
  69.       // else //if (($alto < 1) && ($ancho < 1))
  70.      // error return -21;
  71.   }
  72.  
  73. // Se crea la nueva imagen redimensionada
  74. if (@function_exists("ImageCreateTrueColor"))
  75.    $imgDestino = @imagecreatetruecolor($ancho,$alto);
  76. else
  77.    $imgDestino = @imagecreate($ancho,$alto);
  78.  
  79. @imagecopyresized ($imgDestino, $imgOrigen, 0, 0, 0, 0, $ancho, $alto, $vDatosImg[0], $vDatosImg[1]);
  80.  
  81. switch($vDatosImg[2])
  82. {
  83.   case IMAGETYPE_GIF:
  84.   @imagegif($imgDestino);
  85.   break;
  86.   case IMAGETYPE_JPEG:
  87.   @imagejpeg($imgDestino);
  88.   break;
  89.   case IMAGETYPE_PNG:
  90.   @imagepng($imgDestino);
  91.   break;
  92.  
  93. }
  94.  
  95. @imagedestroy($imgOrigen);
  96. @imagedestroy($imgDestino);
  97.  
  98.  
  99.  
  100. }
  101. ?>
  102. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  103. <html xmlns="http://www.w3.org/1999/xhtml">
  104. <head>
  105. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  106. <title>Documento sin t&iacute;tulo</title>
  107. </head>
  108. <body>
  109.  
  110. <form id="form1" name="form1" enctype="multipart/form-data" method="post" action="">
  111.   <label>
  112.   <input type="file" name="imagen" />
  113.   </label>
  114.   <label></label>
  115.   <input type="submit" name="submit" value="Guardar " />
  116.   <?php
  117.    include("funcionesenphp/funcion_imagen.php");
  118.    if(isset($submit)){
  119.    // is_uploaded_file indica si un archivo fue cargado a través de HTTP POST.$_FILES para leer los datos del archivo que se está subiendo al servidor.
  120.    if (is_uploaded_file($_FILES['imagen']['tmp_name'])) {
  121.    //revisar que sea jpg
  122.    $nombre=basename($_FILES['imagen']['tmp_name']);  
  123.    $datos = getimagesize($nombre);
  124.    //if ($_FILES['imagen']['type'] == "image/jpeg" || $_FILES['imagen']['type'] == "image/pjpeg" || $_FILES['imagen']['type'] == "image/gif" ||  $_FILES['imagen']['type'] == "image/Png" )
  125.    if($datos[2]<=3 )
  126.    {
  127.      /*Inserto el nombre dentro de la Base de datos*/
  128.    /*=======================================*/
  129.       if($datos[2]=1){$tipo=".gif";}
  130.       else if($datos[2]=2){$tipo=".jpg";}
  131.       else $tipo=".png";
  132.       $nuevoNombre =time().$tipo;
  133.                  /// conexion
  134.      $ruta="imagen/".$nuevoNombre;
  135.      $sql="INSERT INTO imagen(ruta_imagen) VALUES ('$ruta')";  
  136.      $result=mysql_query($sql,$links);
  137.      if ($result)
  138.      {  echo 'Todo bien';
  139.         //nuevo nombre para la imagen
  140.         //include("funcionesenphp/funcion_imagen.php");
  141.        // resizeImg($i,$ruta,100,100);
  142.         //mover la imagen a carpeta indicada
  143.         move_uploaded_file($_FILES['imagen']['tmp_name'],$ruta);
  144.         echo "<img src='".$ruta."'> <br> imagen ".$nuevoNombre." subida con éxito";
  145.         iPintaImagenRedimensionada ($ruta,false,600,655);
  146.      }
  147.      else { echo 'Error al intentar ejecutar el comando:';}
  148.      mysql_close();
  149. /*===============================================*/
  150. //mensaje de éxito
  151. }else
  152.      {
  153.       echo "Formato no válido para fichero de imagen";
  154.       }
  155. }
  156.   else
  157.       {
  158.       echo "Error al cargar imagen: " . $_FILES['imagen']['name'];
  159.       }
  160. }
  161.  
  162. ?>
  163. </form>
  164.  
  165. </body>
  166. </html>

aayuda porfa

Última edición por GatorV; 05/11/2008 a las 09:18
  #2 (permalink)  
Antiguo 05/11/2008, 09:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: problema con redimensionar

Hola NSNCxxxx,

Te aparecen muchos simbolos ya que tu llamas al stream directo de la imagen al usar imagepng/jpg/gif, necesitas capturar usando las funciones de salida, o pasarle el segundo parámetro a esas funciones para guardar la salida en un fichero.

Saludos.
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 05:10.