Is it possible to mask with SHAPES from PNG?

I know you can mask things with the rectangular, circle or freehand tool, but can I insert a png and turn it into a mask. I want to have a mask with lots of holes in it or at least organically drawn edges.