So, you're assuming that read is some magical function which you can feed a URL? Where did you get that idea from? And if you think that you can feed read a URL, why didn't you try to read to fetch the document containing the URL to the image?
I'd use LWP::Simple and its getprint method. That will take a URL, and write it to the selected filehandle. Which is what you want.