Lo que pasa es que no necesariamente todas las imágenes en PNG tienen transparencia. Si
imagecolortransparent() devuelve -1, seguramente es el caso y bastará un
if para aplicar ese código sólo cuando sea necesario.
P.D. eregi() es una función obsoleta y deberías usar preg_match() en su lugar, sólo teniendo en cuenta que los patrones cambian un poco:
http://www.forosdelweb.com/f18/aport...s-pcre-646110/