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($img, true); //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, $img, 0, 0, 0, 0, $anchura, $altura, $dimensiones[0], $dimensiones[1]);//reescala
imagecopyresampled ($thumb2, $img, 0, 0, 0, 0, $anchura2, $altura2, $dimensiones[0], $dimensiones[1]);//reescala
imagecopy($thumb, $logo, $anchura-$logoW-$margen, $altura-$logoH-$margen, 0, 0, $logoW, $logoH); //Pone el logo
imagecopy($thumb2, $logo2, $anchura2-$logoW2-$margen2, $altura2-$logoH2-$margen2, 0, 0, $logoW2, $logoH2); //Pone el logo
imagejpeg($thumb,$thumb_name, 60);//mueve la imagen al server
imagejpeg($thumb2,$thumb_name2, 40);//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;
?>