There are two approaches. The easy (but expensive one) is to find a local T-Shirt shop that does custom prints - they can take any photo and print it on a shirt. The result will look professional and should last a long time.
The harder, but less expensive approach, is do it yourself. You print the images on a special kind of paper called transfer paper. Here's
a link to an Epson brand I've used in the past, and one
to an Avery brand that is high rated (and will work on white shirts as well as dark). You then iron the image directly onto the shirt.
These transfers tend to look ok, and may fade after a while (best to wash the shirts inside out). When using transfers, keep in mind the following:
- Be sure to print on the correct side of the paper.
- Read the instructions! Some of the transfer require "reverse print" (printing a mirror image - something most printers are able to do and that can be set up in the printer settings).
- Use a good quality white T-shirt (cotton tends to work best, but read the instructions on each for more info).
Even assuming you waste a shirt and transfer or two during experimentation, it's typically cheaper to use transfers than do it at a store if you're printing more than a few shirts.