@Lokosit; şu örneği deneyebilir misin?

<?php
	
	$link = $_GET["id"];
	
	$nedirbu = getimagesize($link);
	
	if(file_exists("cache/".md5($link)))
	{
		header("Content-Type: {$nedirbu["mime"]}; charset=UTF-8");
		
		readfile("cache/".md5($link));
		
		exit;
	}
	
	switch($nedirbu["mime"])
	{
		case "image/gif":
		{
			$gif = true;
		} break;
		case "image/jpeg":
		{
			$damga = imagecreatefrompng("uploads/play.png");
			$foto = imagecreatefromjpeg($link);
		} break;
		case "image/png":
		{
			$damga = imagecreatefrompng("uploads/play.png");
			$foto = imagecreatefrompng($link);
		} break;
		default:
		{
			$gif = true;
		}
	}
	
	if(isset($gif) === false)
	{
		$resized = imagecreatetruecolor(400, 400); // Yeniden boyutlandırılmış resim
		
		imagecopyresampled($resized, $foto, 0, 0, 0, 0, 400, 400, imagesx($foto), imagesy($foto));
		
		$wx = imagesx($resized) / 2 - imagesx($damga) / 2;
		$wy = imagesy($resized) / 2 - imagesy($damga) / 2;
		
		imagecopy($resized, $damga, $wx, $wy, 0, 0, imagesx($damga), imagesy($damga));
		
		header("Content-type: image/png; charset=UTF-8");
		
		imagepng($resized, "cache/".md5($link));
		
		imagedestroy($resized);
	}
	else
	{
		header("Content-Type: image/gif; charset=UTF-8");
		
		readfile($link);
		
		exit;
	}