No, no, no y no.
Me parece que tienes de verdad bastantes problemas de concepto.
Una forma visual de que te ayudes es contar una a una las llaves de apertura y verificar donde se cierran.
La manera en que lo haces ahora está mal, ya que estás cerrando la función justo en la primer linea dentro cuando en realidad la función termina hasta después del return $im, por favor consulta el manual.
http://php.net/manual/en/functions.user-defined.php