You can scan an existing passport photo with 600 dpi, upload in this site - http://www.idphoto4you.com , use Canada pr setting for single photo, and just use whatever is generated for uploading. Make sure it's over 60 kb and is above their pixel specifics.
You can get it done in Walgreens. You could look for a knowledgeable employee (call a few locations) who can select Canada passport for you or you can go to the self service kiosk and do it yourself with a digital photo you have.
Thanks everyone! I am in Michigan and got it done at the UPS store which was the only place which could print the photo according to the spec. I had tried Walgreens, CVS, Fedex, Walmart and a couple of local photography places but in vain.