When you assign an image to a button, it uses the background-image CSS feature. This doesn't have the stretch/auto-size feature you're looking for.
If you have access to the image on the server-side you can load it into a Bitmap object which will give you the width and height. You can then use this when rendering the page to get the correct size.
Another approach would be to use a div and an img tag. Something like this:
<div style="width: auto; height: auto;" onclick="doButtonAction();"><img src="images/image.png" /></div>