A Kimberley man has escaped jail for roasting and eating a puppy on the banks of the Fitzroy River.

Passers-by watched in horror as a 28-year-old man killed the puppy with a blunt steak knife, then roasted it on a campfire and ate it.

They phoned police, saying it appeared the animal suffered a slow and painful death.

The court was told he committed the act because he was hungry.

The man was charged with ill-treating an animal contrary to the Welfare Act, which carries a maximum penalty of five years in jail and a $50,000 fine.

After a year of counselling, the Fitzroy Crossing Magistrate yesterday fined him $2,500, which is just above the minimum penalty.