Zdaje sobie sprawe, ze moja odpowiedz dla poczatkujacego jest nie do skorzystania z.
Mimo to udziele jej, bo jest to jedyne sensowne rozwiazanie..
http://pear.php.net/manual/en/package.http.http-request2.phpŁączysz się z podanym URL'em za pomocą tej bibliteki, następnie ustawiasz obserwatora:
Observers -> receivedHeaders
Jest to nic innego jak funkcja która zareaguje (zostanie wywołana) z chwilą otrzymania nagłówka HTTP odpowiedzi. Pobierane jest raptem kilkaset bajtów.
Tutaj sprawdzasz czy content-type to image oraz czy conten-length nie jest zbyt duży.
Kończysz wstępną weryfikację na podstawie nagłówka.
Jeśli wykryjesz nieprawidłowości na tym etapie - przerywasz połączenie.
Dzięki temu nie wpakujesz się w pobieranie dużej ilości danych.. przynajmniej teoretycznie

Teraz pozostaje pozwolić pobieraniu się dokończyć.
Kiedy to się stanie, sprawdzsz czy pobrane dane to rzeczywiście obrazek, np. przy pomocy jeden (lub wielu) funkcji GD.