Foros del Web » Programando para Internet » PHP »

Redimensionar imagenes

Estas en el tema de Redimensionar imagenes en el foro de PHP en Foros del Web. Tengo problemas con el siguiente código. La imágenes las redimensiona perfectamente y la guarda en la carpeta correcta con el nombre correcto, pero salen de ...
  #1 (permalink)  
Antiguo 15/05/2008, 02:45
 
Fecha de Ingreso: marzo-2008
Mensajes: 9
Antigüedad: 16 años, 8 meses
Puntos: 0
Redimensionar imagenes

Tengo problemas con el siguiente código. La imágenes las redimensiona perfectamente y la guarda en la carpeta correcta con el nombre correcto, pero salen de color negro, se la carga el contenido.

Son varios trozos de código cogidos del foro y no tengo mucha idea de PHP

¿Aguien me puede ayudar?

Código:
<?php 


# BEGIN imgResample2 
# ------------------------------------------------------------------------------------------------ 
# DESCRIPCIÓN: 
# Altera el tamaño de una imagen al subirse desde una forma ajustándola a una altura o anchura máxima, 
# preservando las proporciones. Opcionalmnete puede señalarse una imagen PNG para que sirva com marca de agua 
# Genera una imagen Thumbnail también. 
# Acepta imágenes JPG, GIF o PNG y el resultado del proceso se copia al directorio actual como una imagen 
# DEVUELVE:  
# Nada 
# PARÁMETROS: 
# $archivo    ->    string, obligatorio; nombre del campo de tipo File del que tomará los valores de la imagen a procesar 
# $dir        ->    string, opcional; ruta donde se subirá el archivo. Si se deja vacío lo sube al directorio actual 
# $anchura    ->    número, opcional; anchura máxima permitida para las imágenes a fullsize. Valor predeterminado es 250 px 
# $anchura_thumb -> número, opcional; anchura máxima permitida para las imágenes thumbnail. Valor predeterminado es 100 px 
# $watermark->    string URL a un archivo PNG, opcional; si existe, incrusta una marca de agua en el fullsize 
# $watermark_thumb-> string URL a un archivo PNG, opcional; si existe, incrusta una marca de agua en el thumbnail 
# $pos        ->    string, opcional, predeterminado = "L-T"; posición horizontal de la marca de agua. Valores permitidos: "L" para izquierda o "R" para derecha, "T" para arriba o "B" para abajo. Separar con un - los valores horizontales y verticales 
# $wmdist    ->    número, opcional, predeterminado = 0; padding en pixeles para el Watermark 
# $c1        ->    número, opcional, predeterminado = 85; calidad del jpg de la imagen grande 
# $c2        ->    número, opcional, predeterminado = 90; calidad del jpg de la imagen thumbnail 

// Aqui debes poner las extensiones que NO admitas
$extensiones=array("html","exe","php","txt","doc","htm","asp","zip","rar","pdf","psd","tif","tiff","rtf","ppt","pps");
$nombre=$_FILES['archivo']['name'];
$var = explode(".","$nombre");
$num = count($extensiones);
$valor = $num-1;
for($i=0; $i<=$valor; $i++) {
    if($extensiones[$i] == $var[1]) {
    echo "<div id=\"capasubido\"><p class=\"frase\">Tipo de Archivo no admitido.</p><p>Elija archivos tipo JPG.</p><p><a href='javascript:history.back()'><strong>Volver a intentarlo</strong></a></p>";
    exit;
    }

}

imgResample2('archivo'); // copia la imagen del campo archivo al directorio actual 
function imgResample2 ($archivo, $dir="../fotos/fotosupload", $anchura=1024, $anchura_thumb=230, $watermark="", $watermark_thumb="", $pos="L-T", $wmdist=0, $c1=95, $c2=97){ 


    if($_FILES[$archivo]['name']!=''){ 
     
    //Si el campo está lleno, es decir, si se subió una foto... 

        //crea los directorios necesarios 
        if($dir!=""){ 
            if(!file_exists($dir)) mkdir($dir); 
        } 
        //asigna las variables         
        $name=$_FILES[$archivo]['name']; 
        $type=$_FILES[$archivo]['type']; 
        $image_name = "/".$name; 
         
        //Imagen original en el servidor 
        $temp=$_FILES[$archivo]['tmp_name'];  
         
        //Objeto con el que trabajará el programa 
        if($type=="image/pjpeg"){ 
            $img = @imagecreatefromjpeg($temp) or die("No se encuentra la imagen $image_name<br>\n");  
        } 
        if($_FILES[$archivo]['type']=="image/gif"){ 
            $img = @imagecreatefromgif($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
            $image_name = str_replace(".gif", ".jpg", $image_name); 
        } 
        if($_FILES[$archivo]['type']=="image/x-png"){ 
            $img = @imagecreatefrompng($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
            $image_name = str_replace(".png", ".jpg", $image_name); 
        } 
        //Para que acepte la transparencia del PNG 
        imagealphablending($img, true); 
        //INICIA PROCESO 
            $dimensiones = getimagesize($temp); //Dimensiones originales de la imagen 
            $ratio = ($dimensiones[0] / $anchura); 
            $altura = round($dimensiones[1] / $ratio); 
            $image = imagecreatetruecolor($anchura,$altura); //crea la nueva imagen 
            $FFF = imagecolorallocate($img, 255,255,255); 
            imagefill($image, 0, 0, $FFF); 
            imagecopyresampled ($image, $img, 0, 0, 0, 0, $anchura, $altura, $dimensiones[0], $dimensiones[1]);//reescala 
             

            imagejpeg($image,"$dir$image_name", $c1);//mueve la imagen al server (el segundo parámetro es la calidad) 
            imagedestroy($image); //destruye image 
            imagedestroy($img); //destruye la imagen "origen" 
        //TERMINA IMAGEN 
         
        //INICIA THUMBNAIL 
        if($anchura_thumb != 0 || $anchura_thumb == $anchura || $anchura_thumb == "" || $anchura_thumb == NULL) { 
            //crea los directorios necesarios 
            $subdir = ""; 
            if($dir!=""){ 
                if(!file_exists($dir.$subdir)) mkdir($dir.$subdir); 
            } else { 
                if(!file_exists($subdir)) mkdir($subdir); 
            } 
            //asigna las variables         
            $name=$_FILES[$archivo]['name']; 
            $type=$_FILES[$archivo]['type']; 
            $thumb_name = $subdir."/thumbnail2_".$name; 
             
            //Imagen original en el servidor 
            $temp=$_FILES[$archivo]['tmp_name'];  
             
            //Objeto con el que trabajará el programa 
            if($type=="image/pjpeg"){ 
                $img = @imagecreatefromjpeg($temp) or die("No se encuentra la imagen $image_name<br>\n");  
            } 
            if($_FILES[$archivo]['type']=="image/gif"){ 
                $img = @imagecreatefromgif($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
                $thumb_name = str_replace(".gif", ".jpg", $thumb_name); 
            } 
            if($_FILES[$archivo]['type']=="image/x-png"){ 
                $img = @imagecreatefrompng($temp) or die("No se encuentra la imagen $image_name<br>\n"); 
                $thumb_name = str_replace(".png", ".jpg", $thumb_name); 
            } 
            //Para que acepte la transparencia del PNG 
            imagealphablending($img, true); 
            //INICIA PROCESO 
                $dimensiones = getimagesize($temp); //Dimensiones originales de la imagen 
                $ratio_thumb = ($dimensiones[0] / $anchura_thumb); 
                $altura_thumb = round($dimensiones[1] / $ratio_thumb); 
                $thumb = imagecreatetruecolor($anchura_thumb,$altura_thumb); //crea la nueva imagen 
                $FFF = imagecolorallocate($img, 255,255,255); 
                imagefill($thumb, 0, 0, $FFF); 
                imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura_thumb, $altura_thumb, $dimensiones[0], $dimensiones[1]);//reescala el thumbnail 

                imagejpeg($thumb,"$dir$thumb_name", $c2);//mueve la imagen al server (el segundo parámetro es la calidad) 
                imagedestroy($thumb); //destruye thumb 
                imagedestroy($img); //destruye la imagen "origen" 
                 

            } else { 
             
                $thumb_name = $image_name; 

            } // end if != 0 
        //TERMINA THUMBNAIL 


    } 


    $unique = time(); 
     
    $resampled[0] = $dir.$image_name; 
    $resampled[1] = $dir.$thumb_name;  
     
    return $resampled; 

     
} 




if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name']))
 {

  echo "<div id=\"capasubido\"><p class=\"frase\">El archivo se ha subido correctamente al servidor, muchas gracias </p>";
  echo "<p>Título: $titulofoto </p>";
  echo "<p class=\"nota\">Nota: si desea hacer cualquier modificaión o eliminación contacta con [email protected] </p>";
  echo "<p class=\"botonterminar\"><input type='button' value='Terminar' class='boton' onClick=window.location.href='javascript:history.back()'></p></div>";

  $fp = fopen("subirfotos.js","a"); 
//metemos un if para que carge cada foto en su pagina correspondiente. El nombre de la pagina se envia desde un campo oculto en el form de la pagina html que llama a esta
  fwrite($fp,"//$pagina\nif (parent.window.location.href.toLowerCase().indexOf('".nl2br($pagina)."') != -1)\n{\n"); 
//escribimos en un js las imagenes
  fwrite($fp,"document.write('\<a href=\"../fotos/fotosupload/".nl2br($nombre)."\" title=\"".nl2br($titulofoto)."\" \>\<img src=\"../fotos/fotosupload/thumbnail2_".nl2br($nombre)."\" alt=\"".nl2br($titulofoto)."\" \/>\</a>');\n}\n\n"); 
  fclose($fp);

// envía un correo cada vez que se hace un comentario
   mail("[email protected]","nueva foto","nueva foto");

 }
else { echo "<div id='errorsubida'><p class=\"frase\">Error al subir el archivo</p><p>Elija archivos tipo JPG.</p><p>Puede que el tamaño de la foto sea demasiado grande, máximo 2MB.</p><p class=\"nota\">Pruebe guardando la foto como JPG y reduciendo su tamaño. <br />Si sigue teniendo problemas contacte con [email protected]</p><p><a href='javascript:history.back()'><strong>Volver a intentarlo</strong></a></p></div>"; }


?>
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 14:14.