While creating a new ribbon button, you will have to pick the button image.

 

This handy image is located here: http://yousite/_layouts/en/images/formatmap32x32.png

Now you will need to reference the top left corner of the image:

Open it in MS Paint and hover the top left corner of the image to get the approximate values. Each image is 32×32 pixels, so you can just start multiplying by 32 to go across and same to go down to get the exact values.

So, for example, go 448 px down and 384 px from the left

This image for the check mark

is located at Image32by32Top=-448
Image32by32Left=-384
(down at the bottom right corner)

 

 

For the formatmap16x16.png image just divide by 2.

 

Here is a portion of the Elements.xml that references the button image location:

<CommandUIDefinition
Location=Ribbon.ListItem.Workflow.Controls._children>

<Button
Id=SurfPoint.SharePoint.Ribbon.NewControlInExistingGroup.Notify


LabelText=Approve Records to Delete


ToolTipTitle=Approve Records to Delete


ToolTipDescription=Check all records to delete then press this button after all records have been selected on this page.


Command=SurfPoint.Command.NewControlInExistingGroup.Notify


Sequence=21


Image16by16=/_layouts/$Resources:core,Language;/images/formatmap16x16.png


Image16by16Top=-48
Image16by16Left=-240


Image32by32=/_layouts/$Resources:core,Language;/images/formatmap32x32.png


Image32by32Top=-448
Image32by32Left=-384


TemplateAlias=o2/>

</CommandUIDefinition>

In this case I was adding a button to do multiple approvals for list items at the same time. There are a few blog posts out there on how to do that and so far it is working well.