Bueno .. no es así .. exactamente ...
La mayoría (y sobre todo la mayoría de ejemplos que circulan en la red) se basan en funciones de GD como imagecreatefrom .....() que requieren una ruta física del archivo .. Pero, tienes otra función que permite tomar el dato de origna desde un "binario" (una variable común) => "String" (cadena).
Tienes un ejemplo de uso en este tutorial:
http://www.forosdelweb.com/f18/tutorial-ejemplo-subir-archivos-bd-guardando-bd-binario-127775/
Un saludo,