Lesser, what you're doing is unfortunately common: you're getting mixed up by the fact that you're using PHP and forgetting what you know about HTML.
The basics do not change. HTML is still HTML.
You can not embed binary data in an HTML file. Images are always indicated by reference.
<img src="try.php">
is OK, presuming try.php is written as devinemke suggested.
Instead, you placed the entire binary content of an image into the HTML by using include() where you should have a URI. Naturally, your Web browser thinks you've gone daft.
Now, let's go back to your original posting. You did this:
<?php
$filename = "fly.gif";
$size = filesize($filename);
header('Content-type: image/gif');
readfile($filename);
echo $filename;
?>
You can't do anything with filesize in this script. Cut that line out. You can NOT echo text on top of a GIF data stream, so cut that out, too. You're left with pretty much the same script devinemke provided.
One big warning: Make sure there are no spaces in your PHP file before <?. The < must be the very first character in the file, or PHP will emit default headers including "Content-type: text/html" and you will get a broken image.