There are, AFAIK, two ways of setting the opacity:
1.
background-color:white;
-moz-opacity: 0.80;
opacity:.80;
filter: alpha(opacity=80);
This leads to everything inside the element to inherit the same opacity.
2.
background: rgba(255, 255, 255, 0.6);
With this one, the opacity is not inherited.
In RSD the css for opacity set on a colour is #2, whereas on images it's #1.
According to my experience, you can add a background image to a row, colum, container etc, but don't touch the opacity settings!
Then you put a layer on top of it (I used the bg pic on a column, so added a container to it) and give it a bg colour where you adjust the opacity.
Then place some text in the container. If you use one of the headings, you may have to adjust the text colour a bit, then the default is somewhat greyish.
This is basically the same as Eric said about a year ago.