GIMP (Gnu Image Manipulation Program) has the great advantage of being FREEEEEE! software, and it's quite powerful and well documented.

I've scarcely scratched the surface of its features, but I was able to be up and running with tessellation in a short time. Here are the steps I follow:

  1. open a jpg in GIMP (<control><o>)
  2. COPY the image (<control><c>)
  3. open a new GIMP window (<control><n>)
  4. PASTE clipboard into new window (<control><v>)
  5. IMAGE > TRANSFORM > FLIP horizontal or vertical
  6. COPY the image (<control><c>)
  7. back to original image and IMAGE > CANVAS size and set to be 2x the height or width of the value shown
  8. EDIT > PASTE AS > New Layer
  9. use the Move tool to position the newly-added layer, matching carefully
  10. IMAGE > FIT CANVAS to layers
  11. IMAGE > FLATTEN Image
  12. SAVE AS with a new name

    ...and repeat as desired