/proc/image(icon, loc, icon_state, layer, dir, pixel_x, pixel_y)
Arguments:
icon: An icon, object type, object instance or image.
loc: Optional, the location to display the image.
icon_state: Optional, the icon state to use.
layer = FLY_LAYER for icons, otherwise inherited from the object: Optional, the layer this should appear on.
dir: Optional, the direction to use.
pixel_x
pixel_y

This constructs a new /image, similar to using new /image().

/obj/hat_giver/Clicked()
    usr.overlays += image('hat.dmi', "big_hat")

The arguments accepted by the proc can be used to override the values inherited from the object, if passed an object in the first argument.

The image is attached to the specified loc, following movable atoms, and can be removed by reassigning the /image/var/loc or deleting the image.