Código PHP:
<?php
$src = $_GET['src'];
$maxsize = $_GET['maxsize'];
if ($maxsize == '') {
$maxsize = 75;
}
// el archivo o imagen
$filename = $src;
// Asignar el ancho y alto maximos
$width = 640;
$height = 480;
// mandando las cabeceras correspondientes
header ('Content-disposition: inline; filename="My.jpg"');
// obteniendo las dimensiones actuales
list($width_orig, $height_orig) = getimagesize($filename);
if ($width && ($width_orig < $height_orig)) {
$width = ($height / $height_orig) * $width_orig;
} else {
$height = ($width / $width_orig) * $height_orig;
}
// Cambiando el tamano de la imagen o resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Marca de Agua o Watermark
$watermark = imagecreatefrompng('img/tu.png');
$watermark_width = imagesx($watermark);
$watermark_height = imagesy($watermark);
$image = imagecreatetruecolor($watermark_width, $watermark_height);
$dest_x = $width - $watermark_width - 5;
$dest_y = $height - $watermark_height - 5;
imagecopymerge($image_p, $watermark, $dest_x, $dest_y, 0, 0, $watermark_width, $watermark_height, 100);
// Salida
imagejpeg($image_p);
imagedestroy($image);
imagedestroy($image_p);
imagedestroy($watermark);
?>