Hola
Me parece que tu codigo debe funcionar asi:
Código PHP:
<?php
if(isset($_GET['id'])) {
$conexion=mysql_connect("localhost","xxxxxx","xxxxxx") or die ("no se ha podido conectar a la BD");
mysql_select_db("xxxxxx") or die ("no se ha podido seleccionar la BD");
$sql = "SELECT archivo_binario,archivo_tipo,archivo_nombre FROM fotos WHERE id='".$_GET['id']."'";
$consulta = mysql_query($sql,$conexion);
$imagen = mysql_result($consulta,0,"archivo_binario");
$type = mysql_result($consulta,0,"archivo_tipo");
// Defines la ruta de la imagen que quieres poner como marca de agua
$watermark = "water.png"; // Debe ser en formato png preferentemente
$im = imagecreatefrompng($watermark);
// Envio cabeceras al navegador
Header ("Content-type: $type");
// Generar el thumbnail:
// Se crea la imagen desde el campo binario de la BD
$img = imagecreatefromstring($imagen);
// Tamaño del Thumbnail
$picsize = 450;
// Se obtienen los datos del ancho y alto de la imagen.
$new_w = imagesx($img);
$new_h = imagesy($img);
// Se calcula la relación alto/ancho
$aspect_ratio = $new_h / $new_w;
// Se ajusta al nuevo tamaño
$new_w = $picsize;
$new_h = abs($new_w * $aspect_ratio);
// Se crea la mascara de la imagen nueva
$dst_img = ImageCreateTrueColor($new_w,$new_h);
// Se copia y reajusta el nuevo tamaño en la nueva imagen.
imagecopyresampled($dst_img,$img,0,0,0,0,$new_w,$new_h,imagesx($img),imagesy($img));
// Se aplica la marca de agua a la imagen
imagecopy($dst_img, $im, 0, 0, 0, 0, imagesx($im), imagesy($im));
// Se entrega al buffer de salida (navegador en este caso) la imagen en formato JPEG
// El tercer parámetro (100) indica la calidad de la imagen: en porcentaje relación calidad/peso imagen.
imagejpeg($dst_img,'',100);
}
?>
Asi debe funcionar... Salu2