Bien, este código salió de la necesidad, pues teníamos la urgencia de incrustar una marca de agua en imágenes al vuelo, y además redimensionarlas a un tamaño deseado.
El código es muy simple pero la verdad es que funciona a la perfección. Lo único que necesita es una máquina medianamente potente para procesar las imágenes con agilidad.
// Ruta de la imagen original
$path = 'carpeta_imagenes/'.$_GET["img"];
// Cargamos la imagen seleccionada
$image = imagecreatefromstring(file_get_contents($path));
$w = imagesx($image) +5;
$h = imagesy($image) +5;
// Cargamos la imagen de marca de agua, recomendable formato PNG
$watermark = imagecreatefrompng('carpeta_imagen_marca_de_agua/logo.png');
$ww = imagesx($watermark) +5;
$wh = imagesy($watermark) +5;
// Mezclamos la imagen original y la marca de agua
imagecopy($image, $watermark, $w-$ww, $h-$wh, 0, 0, $ww, $wh);
// Volvemos a procesar la imagen para redimensionarla
list($width,$height)=getimagesize($path);
$newwidth=$_GET["w"]; // Recibimos el parámetro del ancho deseado
// Calculamos el alto y ancho deseado
$newheight=($height/$width)*$newwidth;
$tmp=imagecreatetruecolor($newwidth,$newheight);
imagecopyresampled($tmp,$image,0,0,0,0,$newwidth+4,$newheight+4,$w,$h);
// Enviamos la imagen
header('Content-type: image/jpeg');
imagejpeg($tmp);
exit();
?>
Para hacer la llamada al procedimiento, debemos insertar el código de esta manera: