Foros del Web » Programando para Internet » PHP »

Redimensionar imágens al subirlas

Estas en el tema de Redimensionar imágens al subirlas en el foro de PHP en Foros del Web. Hola a todos/as a ver si alguien me pude hechar una mano. Tengo un código para subir imágenes a un servidor. Las imágenes suben correctamente. ...
  #1 (permalink)  
Antiguo 24/07/2007, 18:03
 
Fecha de Ingreso: julio-2007
Mensajes: 1
Antigüedad: 17 años, 4 meses
Puntos: 0
Redimensionar imágens al subirlas

Hola a todos/as
a ver si alguien me pude hechar una mano.

Tengo un código para subir imágenes a un servidor. Las imágenes suben correctamente. Lo que quiero ahora es redimensionar las imágenes.

El código que tengo, si redimensiono la primera imágen sin el el código de la seguna, me lo hace; y al revés, si redimensiono la seguna sin el código de la primera, tambíén.

Es decir, que por separado me funciona. El problema está al hacerlo las dos a la vez, que no me funciona. O bién no me redimensiona, o me la redimensiona y se queda en negro (me crea la imagen pero no me coje la vieja)

Dejo el código a ver si alguién me puede ayudar.
Código PHP:
# Pujada al servidor de la foto il·lustrativa
                
move_uploaded_file($tmp1$ahora1);
                @
chmod($ahora10777);
                
# Pujada al servidor de la foto il·lustrativa
                
move_uploaded_file($tmp2$ahora2);
                @
chmod($ahora20777);

                
# Redimensió
                # IMATGE 1:
                
switch ($tipus_img_1)
                {
                    case 
'jpeg':
                        if(
function_exists("imagecreatefromjpeg"))$img1=imagecreatefromjpeg($ahora1);
                    break;
                    case 
'gif':
                        if(
function_exists("imagecreatefromgif"))$img1=imagecreatefromgif($ahora1);
                    break;
                }
                
$dades1=getimagesize($ahora1);
                
$ample_original1=$dades1[0];
                
$alt_orignial1=$dades1[1];
                if(
$ample_original1>$alt_orignial1)
                {
                    
$ample_desti1=$amplada_max;
                    
$alt_desti1=($ample_desti1/$ample_original1)*$alt_orignial1;
                }
                else
                {
                    
$alt_desti1=$amplada_max;
                    
$ample_desti1=($alt_desti1/$alt_orignial1)*$ample_original1;
                }
                
// imatge destí
                
$img2=@imagecreatetruecolor($ample_desti1$alt_desti1) or $img2=@imagecreate($ample_desti1$alt_desti1);
                
// redimensionar
                
@imagecopyresampled($img2$img10000$ample_desti1$alt_desti1$ample_original1$alt_orignial1) or imagecopyresized($img2$img10000$ample_desti1$alt_desti1$ample_original1$alt_orignial1);
                
# Creació nou imatge
                
switch ($tipus_img_1)
                {
                    case 
'jpeg':
                        if(
function_exists("imagejpeg"))imagejpeg($img2,$ahora1);
                    break;
                    case 
'gif':
                        if(
function_exists("imagegif"))imagegif($img2,$ahora1);
                    break;
                }
                
clearstatcache();
                
# IMATGE 2:
                
switch ($tipus_img_2)
                {
                    case 
'jpeg':
                        if(
function_exists("imagecreatefromjpeg"))$img3=imagecreatefromjpeg($ahora2);
                    break;
                    case 
'gif':
                        if(
function_exists("imagecreatefromgif"))$img3=imagecreatefromgif($ahora2);
                    break;
                } 
Saludos y gracias de antemano
  #2 (permalink)  
Antiguo 24/07/2007, 22:58
 
Fecha de Ingreso: junio-2004
Mensajes: 80
Antigüedad: 20 años, 5 meses
Puntos: 0
Re: Redimensionar imágens al subirlas

Hola, he utilizado este codigo para redimensionar... vealo tal vez te puede servir de algo...

<?
$origen="$pathfotos/$archivo_name";
$destino="$pathfotos/$archivo_name";
$destino_temporal=tempnam("tmp/","tmp");

$dimensiones = getimagesize($origen); //Dimensiones originales de la imagen
$new_anchura = 300; //este valor tambien lo puede colocar como variable desde un formulario...
$ratio = ($dimensiones[0] / $new_anchura);
$new_altura = round($dimensiones[1] / $ratio);
redimensionar_jpeg($origen, $destino_temporal, $new_anchura, $new_altura, 100);
// guardamos la imagen
$fp=fopen($destino,"w");
fputs($fp,fread(fopen($destino_temporal,"r"),files ize($destino_temporal)));
fclose($fp);
// mostramos la imagen
//echo "<img src='$pathfotos/$archivo_name'>";
function redimensionar_jpeg($img_original, $img_nueva, $img_nueva_anchura, $img_nueva_altura, $img_nueva_calidad)
{
// crear una imagen desde el original
$img = ImageCreateFromJPEG($img_original);
// crear una imagen nueva
$thumb = imagecreatetruecolor($img_nueva_anchura,$img_nueva _altura);
// redimensiona la imagen original copiandola en la imagen
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_an chura,$img_nueva_altura,ImageSX($img),ImageSY($img ));
// guardar la nueva imagen redimensionada donde indicia $img_nueva
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
ImageDestroy($img);
}
?>
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 13:11.