RewriteCond %{HTTP_REFERER} !^$
Get rid of that line. It will cause you no end of heartache and headache.
Leterally it's making one of the matching conditions : no referrer.
So, if I open my browser, click my bookmark to your site I get no referrer, thus no images. If I hit refresh the same thing happens. Usually at that point I've left your site, but If I haven't left your site after that and actually clicked a link now I have your site as a referrer and I'll get pictures. But.. that ain't gonna happen because after the first time I refreshed if I had no pictures I left.
Besids, if anybody is linking to your pictures there would be a referrer.
You also missed GIF JPG PNG and png.
If you have downloads you'll also want to add .exe and .zip.