Ver Mensaje Individual
  #5 (permalink)  
Antiguo 20/02/2004, 20:59
Avatar de Escoffie
Escoffie
 
Fecha de Ingreso: abril-2003
Ubicación: Mérida, Yucatán
Mensajes: 242
Antigüedad: 21 años
Puntos: 9
Hola a todos, la respuesta que me dio Cluster funcionó muy bien

Con la ayuda de muchos códigos de las FAQ y de otros temas aquí tocados (gracias a todos)arme un código que hace lo que yo quería.

Aquí les dejo un código que mete la imagen a tamaño de 350 dpi de ancho además de un thumbnail de 200, y en ambos casos les inserta una marca de agua.

Inserta los archivos como jpg al 60 y 40% de calidad respectivamente

¡Es una maravilla PHP y GD!

Ahí si le ven un modo de simplificarlo o mejorarlo, adelante
Porque yo lo escribí seguro pasándome por el arco del triunfo todas las buenas maneras

Código PHP:
<?php 
require_once('te_conectas.php'); 
//establece una conexión con la base de datos.
mysql_select_db($midb$conexion); 
//selecciona la DB correspondiente
//Si no se ha subido nada, te rebota de nuevo al formulario de inserción:
if (empty($_FILES['archivo']['name'])){
header("location: mi_subir.php?status=falta%20indicar%20fichero"); //o como se llame el formulario ..
exit;
}

$name=$_FILES['archivo']['name'];
$type=$_FILES['archivo']['type'];
$thumb_name 'tn_'.$name;
$thumb_name2 'tn2_'.$name;

// archivo temporal (ruta y nombre).
        
$temp=$_FILES['archivo']['tmp_name']; 
//Imagen original en el servidor
        
$img = @imagecreatefromjpeg($temp) or die("No se encuentra la imagen $camino$nombre<br>\n"); //Objeto con el que trabajará el programa
        
imagealphablending($imgtrue); //Para que acepte la transparencia del PNG
        
$logo imagecreatefrompng("watermark.png"); //El logo que se va a pegar encima
        
$logo2 imagecreatefrompng("watermark2.png"); //El logo que se va a pegar encima
        
$margen 10//distancia entre el watermark y la orilla
        
$margen2 5//distancia entre el watermark y la orilla
        
$logoW =imagesx($logo); //Anchura del logo
        
$logoH =imagesy($logo); //Altura del logo
        
$logoW2 =imagesx($logo2); //Anchura del logo
        
$logoH2 =imagesy($logo2); //Altura del logo
        
$dimensiones getimagesize($temp); //Dimensiones originales de la imagen
        
$anchura 400//Tamaño al que quiero que quede
        
$ratio = ($dimensiones[0] / $anchura);
        
$altura round($dimensiones[1] / $ratio);
        
$anchura2 200//Tamaño al que quiero que quede
        
$ratio2 = ($dimensiones[0] / $anchura2);
        
$altura2 round($dimensiones[1] / $ratio2);
        
$thumb imagecreatetruecolor($anchura,$altura); //crea la nueva imagen
        
$thumb2 imagecreatetruecolor($anchura2,$altura2); //crea la nueva imagen
        
imagecopyresampled ($thumb$img0000$anchura$altura$dimensiones[0], $dimensiones[1]);//reescala
        
imagecopyresampled ($thumb2$img0000$anchura2$altura2$dimensiones[0], $dimensiones[1]);//reescala
        
imagecopy($thumb$logo$anchura-$logoW-$margen$altura-$logoH-$margen00$logoW$logoH); //Pone el logo
        
imagecopy($thumb2$logo2$anchura2-$logoW2-$margen2$altura2-$logoH2-$margen200$logoW2$logoH2); //Pone el logo
        
imagejpeg($thumb,$thumb_name60);//mueve la imagen al server
        
imagejpeg($thumb2,$thumb_name240);//mueve la imagen al server
        
imagedestroy($logo); //destruye el logo después de usarlo
        
imagedestroy($thumb); //destruye el thumb
        
imagedestroy($thumb2); //destruye el thumb
        
imagedestroy($img); //destruye la imagen
        
$image addslashes(fread(fopen($thumb_name"rb"), filesize($thumb_name))); //Arma el blob que se insertará
$image2 addslashes(fread(fopen($thumb_name2"rb"), filesize($thumb_name2))); //Arma el blob que se insertará
$image_size filesize($thumb_name);
$thumb_size filesize($thumb_name2);

        
unlink($thumb_name);//Borra el thumbnail una vez usado
        
unlink($thumb_name2);//Borra el thumbnail una vez usado

//insertamos los datos en la BD.
$consulta_insertar "INSERT INTO mi_imagen 
(id, name, image, image_size, thumb, thumb_size, type) 
VALUES ('', '$name', '$image', '$image_size', '$image2', '$thumb_size', '$type')"
;
mysql_query($consulta_insertar,$prueba) or die("No se pudo insertar los datos en la base de datos.");
header("location: mi_subir.php?status=Upload%20".$name."%20ok");  // si ha ido todo bien
exit;
?>