4.6 New UI How to change Button Image?

Tested and Working.

public Sprite myImage;
public Button myBtn;
void Start(){

         myImage = Resources.Load<Sprite>("BTNS"); // Make sure not to include the file extension

         //Make sure it is added in the Inspector. Or reference it using GameObject.Find.
         myBtn.image.sprite = myImage; // That is right, no need to GetComponent.

}

Also you can use the properties of Button Component

http://docs.unity3d.com/Manual/script-Button.html

Specifically you can set the button's behavior based on events.

Example:

Empty properties

And then :

Button with sprite swap behavior on events