For the longest time, I've been using epassportphoto.com to generate passport and visa photos. I've made 4"x6" prints at Target, Costco, or CVS and have never had an issue with any of them rejecting the photo because of the content. I have heard of some Walgreeens photo locations that wanted to charge $8 per pair of 2"x2" photos (i.e. their passport photo price) once they saw that the photos were passport sized.
I haven't had many problems with it. The only rejected photo I remember was not from the composition, but that I had used an original photo that was too dark for a particular consular official. The online services generally work great because they simplify the process of getting the right size. It's a matter of uploading, sizing the cropping box, and dragging the box for a final area selection. It's a bit hard to describe, but it's pretty intuitive once you start using the tool. At least with epassportphoto.com, the crop box also contains translucent rectangles used to line up the chin and top of the head in accordance with passport/visa photo requirements that the top of the head to chin be 1-1/8" to 1-1/2".
I mentioned epassportphoto.com, which only generates output meant for a 4"x6" print size. There are several other sites (which I haven't tried) including portraitbooth.com, 123passportphoto.com, idphoto4you.com, passportcorner.com, or any number of other sites. Some of them give options for different sheet sizes other than 4"x6".
I think epassportphoto.com was one of the pioneers, but I do have issues with how they've handled their free service. They used to produce a sheet that used up all the available area, but now they have one block with a green advertisement of their service. That's probably not an issue now that the State Dept or ICE (which now conforms to State Dept photo standards) only ask for one or two photos. However, I could see someone producing multiple copies to get multiple foreign visas for a multi-country trip, and where foreign consular offices will accept the standard US passport size out of convenience. It's still dirt cheap to do it yourself. I can get 4"x6" prints for less than 25 cents each, and the quality is better than those old instant photos that I used to pay $10 for a pair.