with "plain php" you can use this workaround:
make a frameset with 2 frames (one of which contains the image, the other one may be the menu or invisible or whatever).
on first load, you open
[image frame] show-image.php
[other frame] otherframe.php
the other frame refreshes itself every second.
you can do this using the meta-equiv html refresh setting (google it).
when this script (otherframe.php) runs, it checks on the server if a new image has arrived.
if so (and only if so!), it includes a javascript which causes the show-image.php frame to reload (see javascript reference, document.location).
drawback: you still have to refresh every second
advantage: the (large) image file is only transmitted when necessary. continuous refresh data is just a little html text file
this came to my mind, perhaps there are other solutions.