James McAvoy 'amazing' in Filth

James McAvoy is "absolutely amazing" in Filth, author Irvine Welsh has revealed.

The Scottish star plays drug-addicted and misogynistic detective sergeant Bruce Robertson in Jon S Baird's big-screen adaptation of Irvine's best-seller, alongside Jamie Bell, Alan Cumming and Imogen Poots.

"He is absolutely amazing. It's just one of the greatest acting performances I have ever seen," Irvine said.

"I think he's better than Robert De Niro in Taxi Driver. He is absolutely electric and is right into the character. It's a fantastic emotional performance."

Irvine - who is promoting the release of Ecstasy on DVD and Blu-ray on August 20 - said film fans will be surprised by James' transformation.

"This is a totally different thing from anything he has ever done before. I've never seen him in that kind of role. When you meet him in real-life, he's such a nice guy but he plays this monster, which he humanises too," the writer explained.

The 53-year-old said he enjoys seeing how his books, including Trainspotting, translate to the big screen.

"The exciting thing for me is the transformation, and seeing what the filmmaker is going to do with my material. I don't just want to see my book transferred to screen, I want to see the real cinematic element coming through," he said.

"Ecstasy is a very good film. It's got some fabulous performances from Adam Sinclair and Kristin Kreuk, who share amazing chemistry, and Billy Boyd adds a fantastic comedic tone, so I'm very pleased with it," he added.