For the tinted area you can create a PNG image and use it as a background for a <div> this will allow the background photograph to show through the PNG and the text is then contained within the tinted area. Which is exactly what you want.
However this doesn't work on IE as IE doesn't support PNGs properly, there are some JavaScript fixes to make PNG transparency work, see:
http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html
http://koivi.com/ie-png-transparency/
The alternative which works across platforms is to make a 2nd image which is tinted portion of the background photograph, then place this as the background to the <div> containing the text. Although not true transparency it does give the effect, an old example of mine can be seen at
http://stuff.tolranet.co.uk/css/sky/sky.html, make the browser window narrow to see the background photo show out both sides.