JSFiddle - React, Tailwind, and code Playground
HTML
<div class='imgWrap'>
<span data-title='This is some very long text that might or might now flow on top of the image'></span>
<img src="http://luxurylaunches.com/wp-content/uploads/2014/05/uber-london.jpg" id="top" data-appear-animation=fadeIn">
</div>
CSS
.imgWrap{
display:inline-block;
background:#000;
position:relative;
}
.imgWrap > img{ display:block; opacity:.5; }
.imgWrap > span{ position:absolute; display:table; text-align:center; z-index:1; height:100%; left:0; right:0; padding:20px; color:#FFF; font-size:2em; }
.imgWrap > span::after{ content:attr(data-title); display:table-cell; vertical-align: middle; }