I haven't got time to test this myself but I think...
You could set the image as a background image on the main div rather than embedding it in img tags. Then you can wrap your p tag in another div so you can set that div to 'display: table-cell' - that will allow you to vertically align the contents, then you can horizontally align the text in the p tag.. Something like this:
Code:
<div id="container" style="width:240px; height:427; display: table; background-image:url('/images/image.png'); background-repeat:no-repeat; background-position:center top;">
<div id="text" style="display: table-cell; vertical-align: middle;">
<p style="text-align: center;">My text here</p>
</div>
</div>
(excuse the messy inline css)
If you didn't want the image as a background of the div I think you could just add the img tags inside the div and then set it with absolute positioning.