You can set the image as the background on <p>, and then place the transparent containers at the top of the background image in a form that you do not want to overlap text.
<p>
<span id="block1"></span>
<span id="block2"></span>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. ...
</p>
With the following CSS:
p {
background: url(your-image.png) no-repeat 100% 0;
}
#block1 {
float: right;
width: 100px;
height: 100px;
}
#block2 {
clear: both;
float: right;
width: 200px;
height: 50px;
}
, , , . .