
Archivo enviar.php
Código:
<?php
// Base de datos
// Definimos la variable y realizamos la conexión con la base de datos:
$conexion = mysql_connect('localhost', 'root', '') or die('Error al conectar con la base de datos.');
// Definimos la variable y seleccionamos la base de datos a ser utilizada:
$basededatos = mysql_select_db('galeria', $conexion) or die('La base de datos seleccionada no existe.');
// Foto
// Definimos las variables de la foto:
$nombre = $_FILES['foto']['name'];
$rutatemporal = $_FILES['foto']['tmp_name'];
$directorio = 'fotos';
$rutadestino = $directorio . '/' . $nombre;
// Movemos la foto a la carpeta de destino:
move_uploaded_file($rutatemporal, $rutadestino);
// Marca de agua
// Definimos las variables de la marcade agua:
$rutamarcadeagua = 'imagenes/marca_de_agua.png';
$marcadeagua = imagecreatefrompng($rutamarcadeagua);
$rutafoto = $directorio . '/' . $nombre;
$foto = imagecreatefromjpeg($rutafoto);
$tamanofoto = getimagesize($rutafoto);
$tamanomarca = getimagesize($rutamarcadeagua);
$destino_x = $tamanofoto[0] - $tamanomarca[0] - 10;
$destino_y = $tamanofoto[1] - $tamanomarca[1] - 10;
imagecopymerge($foto, $marcadeagua, $destino_x, $destino_y, 0, 0,$tamanomarca[0], $tamanomarca[1], 100);
imagedestroy($foto);
imagedestroy($marcadeagua);
$correo_electronico = $_POST['correo_electronico'];
$sql = "INSERT INTO fotos (ruta,correo_electronico) values('" . $rutadestino . "','" . $correo_electronico . "')";
$respuesta = mysql_query($sql, $conexion);
if ($respuesta) {
echo 'La foto ha sido enviada correctamente.';
} else {
echo 'Error al enviar la foto.';
}
?>
, es decir, que necesitas sobreescribir la imagen original, de lo contrario los cambios aplicados por GD quedarán en memoria 

