Here's what I did, for a cotton T-shirt:

1 Get your desired image on a PC
2 Convert it to a mirror image
3 Print it onto clear plastic on a laser printer
4 Put a plastic bag inside the t-shirt
5 Pour acetone onto the area of the tshirt where the image is to be fixed
6 Place the plastic sheet from (2) printed side down onto the shirt
7 Put a heavy weight onto the plastic
8 Wait
9 Remove plastic sheet (and plastic bag)
10 Protect the image with a sheet of paper and iron over it

I am sure some web research will support this method, but I actually did it and it worked. Here's some more detail on each point:

1 Pretty easy these days. Choose a black and white image that is very clear. I did this about 15 years ago- we had to draw our own image with Adobe Illustrator on a Mac. Plus ca change.
2 Again, pretty easy. Image software will flip the image for you, or sometimes it is a setting in the printer driver.
3 Make sure you use plastic sheets that are designed for laser printers! The ordinary overhead projector ones will melt! Laser printer images are made by depositing black PVC powder onto the paper, and then heating it to melt it and fix it in place. Obviously this method won't work with inkjets.
4 The plastic bag keeps the front and back layers of the shirt separate.
5 Be careful, acetone is flammable, and has strong vapours!!
6 The acetone will dissolve the PVC powder and release it from the plastic.
7 The weight stops the layers from moving (or you'll get a damaged image)
8 I don't recall how long to leave the sheet on the shirt- experiment.
9 Carefully peel the plastic away- the black toner will stay on the shirt. Take the plastic bag out from inside.
10 Heating the image re-melts the toner and helps it stick to the shirt fibres more.

Good luck. I disclaim all responsibility. If you choose to do this then be careful.

I never tried it on silk, in principle it would work with any material, but I am a bit concerned that acetone will destroy silk (and some other materials too), plus you can't iron some things.

A