Foros del Web » Programando para Internet » PHP »

Imagenes redimensionar

Estas en el tema de Imagenes redimensionar en el foro de PHP en Foros del Web. Tengo el siguiente codigo tomado de un temad e aki k es para generar 2 imagens una grande y una chica, pero las JPG las ...
  #1 (permalink)  
Antiguo 09/10/2005, 15:06
 
Fecha de Ingreso: agosto-2004
Ubicación: Aguas
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Imagenes redimensionar

Tengo el siguiente codigo tomado de un temad e aki k es para generar 2 imagens una grande y una chica, pero las JPG las crea pero las pone todo en negro, no se k este mal las GIF si las gurda bien me manda estos warnings:

y al mandar llamar la función para hacer los JPG me manda estos warnings

Warning: imagealphablending(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 59

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 65

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 67

Warning: imagedestroy(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 102

Warning: imagealphablending(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 135

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 141

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 143

Warning: imagedestroy(): supplied argument is not a valid Image resource in c:\archivos de programa\easyphp1-8\www\fotos\subiendof.php on line 172


Y pues no se k este mal espero y me puedan ayudar a solucionar el problema Gracias
  #2 (permalink)  
Antiguo 09/10/2005, 15:06
 
Fecha de Ingreso: agosto-2004
Ubicación: Aguas
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
el codigo PHP es el siguiente

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:
# $campo    ->    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
#
# EJEMPLO:
# imgResample2('img1'); // copia la imagen del campo img1 al directorio actual
function imgResample2 ($campo$dir=""$anchura=250$anchura_thumb=100$watermark=""$watermark_thumb=""$pos="L-T"$wmdist=0$c1=95$c2=97){

    if(
$_FILES[$campo]['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[$campo]['name'];
        
$type=$_FILES[$campo]['type'];
        
$image_name $name;
        
        
//Imagen original en el servidor
        
$temp=$_FILES[$campo]['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[$campo]['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[$campo]['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($imgtrue);
        
//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($img255,255,255);
            
imagefill($image00$FFF);
            
imagecopyresampled ($image$img0000$anchura$altura$dimensiones[0], $dimensiones[1]);//reescala
            
            //INICIA WATERMARK
            //posición horizontal y vertical del watermark:
            
$pos explode("-",$pos);
            
$wmhorz=$pos[0];
            
$wmvert=$pos[1];
        
            if(
$watermark != ''){
                
$logo imagecreatefrompng($watermark);
                
$margen $wmdist//distancia entre el watermark y la orilla
                
$logoW =imagesx($logo); //Anchura del logo
                
$logoH =imagesy($logo); //Altura del logo
                
switch ($wmhorz){
                    case 
"L":
                        
$xpos=$margen;
                        break; 
//end L
                    
case "R":
                        
$xpos=$anchura-$logoW-$margen//posición en x del wm
                        
break; //end R
                
//end switch hotz
                
switch ($wmvert){
                    case 
"T":
                        
$ypos=$margen;
                        break; 
//end T
                    
case "B":
                        
$ypos=$altura-$logoH-$margen//posición en y del wm
                        
break; //end B
                
//end switch vert
                
imagecopy($image$logo$xpos$ypos00$logoW$logoH); //Pone el logo
                
imagedestroy($logo); //destruye el logo después de usarlo
            
}
            
//TERMINA WATERMARK
            
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 != || $anchura_thumb == $anchura || $anchura_thumb == "" || $anchura_thumb == NULL) {
            
//crea los directorios necesarios
            
$subdir "small";
            if(
$dir!=""){
                if(!
file_exists($dir.$subdir)) mkdir($dir.$subdir);
            } else {
                if(!
file_exists($subdir)) mkdir($subdir);
            }
            
//asigna las variables        
            
$name=$_FILES[$campo]['name'];
            
$type=$_FILES[$campo]['type'];
            
$thumb_name $subdir."/".$name;
            
            
//Imagen original en el servidor
            
$temp=$_FILES[$campo]['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[$campo]['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[$campo]['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($imgtrue);
            
//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($img255,255,255);
                
imagefill($thumb00$FFF);
                
imagecopyresampled ($thumb$img0000$anchura_thumb$altura_thumb$dimensiones[0], $dimensiones[1]);//reescala el thumbnail
                //INICIA WATERMARK THUMB
                
if($watermark_thumb != ''){
                    
$logo_thumb imagecreatefrompng($watermark_thumb);
                    
$margen $wmdist//distancia entre el watermark y la orilla
                    
$logoW_thumb =imagesx($logo_thumb); //Anchura del logo
                    
$logoH_thumb =imagesy($logo_thumb); //Altura del logo
                    
switch ($wmhorz){
                        case 
"L":
                            
$xposThumb=$margen/2;
                            break; 
//end L
                        
case "R":
                            
$xposThumb=$anchura_thumb-$logoW_thumb-($margen/2); //posición en x del wm
                            
break; //end R
                    
//end switch hotz
                    
switch ($wmvert){
                        case 
"T":
                            
$yposThumb=$margen/2;
                            break; 
//end T
                        
case "B":
                            
$yposThumb=$altura_thumb-$logoH_thumb-($margen/2); //posición en y del wm
                            
break; //end B
                    
//end switch vert
                    
imagecopy($thumb$logo_thumb$xposThumb$yposThumb00$logoW_thumb$logoH_thumb); //Pone el logo
                    
imagedestroy($logo_thumb); //destruye el logo después de usarlo
                
}
                
//TERMINA WATERMARK THUMB
                
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;
    
$resampled[2] = "<img src=\"$dir$image_name?i=$unique\">";
    
$resampled[3] = "<img src=\"$dir$thumb_name?i=$unique\">";
    
    return 
$resampled;
    

?> 
  #3 (permalink)  
Antiguo 09/10/2005, 17:05
 
Fecha de Ingreso: junio-2002
Ubicación: En el trabajo...
Mensajes: 106
Antigüedad: 15 años, 5 meses
Puntos: 0
Exclamación omero

Existe la carpeta de images ?????
esta fotos/images ???

Saludos...
  #4 (permalink)  
Antiguo 27/10/2005, 14:19
 
Fecha de Ingreso: agosto-2003
Mensajes: 33
Antigüedad: 14 años, 4 meses
Puntos: 0
A mi me ocurre lo mismo.

Warning: imagealphablending(): supplied argument is not a valid Image resource in /var/www/vhost/etecnia.com/home/html/webs/recuperadoresdeportivos/html/extranet/php/funciones/funcion_tratar_imagen.php on line 59

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /var/www/vhost/etecnia.com/home/html/webs/recuperadoresdeportivos/html/extranet/php/funciones/funcion_tratar_imagen.php on line 65

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /var/www/vhost/etecnia.com/home/html/webs/recuperadoresdeportivos/html/extranet/php/funciones/funcion_tratar_imagen.php on line 67

Warning: imagedestroy(): supplied argument is not a valid Image resource in /var/www/vhost/etecnia.com/home/html/webs/recuperadoresdeportivos/html/extranet/php/funciones/funcion_tratar_imagen.php on line 102

Lo raro es lo siguiente:

En local me funciona perfectamento enviando archivos de hasta 6MB.

El fallo me da cuando la alojo en el SERVIDOR WEB. Con archivos menores de 1MB todo bien pero cuando el tamaño de los archivos supera un 1MB sale ese error.

Alguien sabe pq???

Gracias de antemano.
  #5 (permalink)  
Antiguo 27/10/2005, 14:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
El fallo me da cuando la alojo en el SERVIDOR WEB. Con archivos menores de 1MB todo bien pero cuando el tamaño de los archivos supera un 1MB sale ese error.

Alguien sabe pq???
Existen limitaciones del archivo que puedes subir .. de la memoria que puede gestionar PHP .. y muchas otras cosas más .. Algunas de ellas las tienes descritas en esta FAQ:

http://www.forosdelweb.com/showpost....&postcount=146

Un saludo,
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 00:41.