Fans often have a very specific picture in their heads when they imagine their favorite characters. For some people, James Bond will always be Sean Connery and Batman will always be Adam West. Casting directors are given the impossible job of matching the best possible actor to an established character and sometimes those choices can be maddening for passionate fans.

RELATED: 15 Actors We Want To See In The Invincible Movie

Internet message boards light up with angry commenters claiming the franchise has been ruined, and sometimes casting directors definitely make the wrong choices. Every so often, though, someone you would never imagine is cast in an iconic role and they personify the character so perfectly, you can't picture anyone else doing it better. CBR takes a look at 15 times when controversial casting choices worked out spectacularly.

15 BEN AFFLECK (BATMAN)

ben-affleck-batman

The actor who would take on the role of our next Batman had been hotly debated pretty much since the end of Christopher Nolan's Batman trilogy in 2012. When their second film was announced as "Batman vs. Superman," it became all people could think about. Dozens of names were thrown around for who could handle the role of The Bat, but one name that wasn't thrown around was the guy many blamed for ruining "Daredevil" in 2003. Sympathizers mentioned his brilliant performances in movies like "The Town" and "Argo," but many refused to watch it at all.

For a lot of people, "Batman vs. Superman: Dawn of Justice" was a crushing disappointment, but the most widely praised aspect of the movie by far was Ben Affleck's portrayal of Bruce Wayne/Batman. He captures the obsessive and ruthless nature of the character in a way that hadn't been seen in a long time and his public persona of Bruce Wayne was more like the charming smooth-talker of "Batman: The Animated Series" than Christian Bale's spoiled rich boy. The future of the DC universe is always in question, but one of the few bright spots they have right now is "Batfleck."

14 CHRIS EVANS (CAPTAIN AMERICA)

Chris-Evans-Captain-America

These days, it's hard to think of anyone else in the role of America's greatest hero, Steve Rogers, but believe it or not, there was a time when Marvel fans were up in arms about this. Multiple petitions popped up online to remove him from the role that claimed he was way too much of a dopey wisecracker to fill the role of the no-nonsense super-soldier. Who could blame them for their skepticism? Evans had previously appeared in the not so fantastic "Fantastic Four" movies as wisecracker Johnny Storm, and before that, he was most widely known for playing the dopey jock in the over-the-top spoof, "Not Another Teen Movie."

Up to that point, he hadn't had a chance to prove himself as a dramatic actor, but Marvel's casting team clearly knew what they were doing, because after five spectacular films as the Captain, and recent rumors about his upcoming departure from the role being met with outcries of horror, Chris Evans IS Captain America.

13 IDRIS ELBA (HEIMDALL)

Heimdall

For some reason, whenever a black actor is cast in the role of a character previously portrayed as white, internet racists explode. Apparently, that remains true even when the character only plays a minor role in the comics and barely appears on-screen in the film. While some cries of miscasting are valid, Idris Elba had already proved his acting chops in the critically-acclaimed series "The Wire" as Russell 'Stringer" Bell and a seven-episode stretch on "The Office" as the uber-serious Charles Miner, among others.

Still, message boards lit up with phrases like, "Heimdall can't be black. He's a Norse god!" Ignoring the fact that Marvel's Asgard is a fictionalized version of ancient Norse mythology, and that even the original Norse mythology never specified race. Yes, the character had always been drawn as white in the comics, but it was never central to his character, because why would it have been? Idris Elba more than proved himself in "Thor" and "Thor: The Dark World," and will finally be given a bigger role in the upcoming "Thor: Ragnarok."

12 JENNIFER LAWRENCE (KATNISS)

Katniss Everdeen shoots a bow and arrow in The Hunger Games

The film casting of a book series always comes with some degree of controversy, because readers create an image of the characters entirely in their minds, and realistically, no actor can look exactly like that character you have in your head. The "Hunger Games" book series was already a massive success before the movies, with a huge and passionate fanbase. So, when Jennifer Lawrence was cast in the lead role as Katniss Everdeen, it was no surprise when the fans blew up because of... her hair color?

The character in the book is described as having "dark hair, olive skin and gray eyes." Some fans took "olive skin" to mean she was a person of color, even though author Suzanne Collins has explicitly stated that she didn't mention a race in the book and praised the casting of Lawrence. The majority of the criticism, then, went to Lawrence's hair color, who is a natural blonde, but to no one's surprise, she dyed her hair for the role. Lawrence had already been nominated for an Academy Award for "Winter's Bone" in 2010, and was such a success in "The Hunger Games" that it turned her into Hollywood's bona fide "It" girl.

11 DANIEL CRAIG (JAMES BOND)

daniel-craig-james-bond

It's amazing how often something as seemingly minor as natural hair color is enough to make some fans say that an actor is totally wrong for a role, rather than considering something like, oh, acting talent to be the top priority. After nearly half a decade's absence from the big screen, it was announced that Daniel Craig would be taking over in Pierce Brosnan's place as James Bond. Of course, fans had to find something to complain about.

Since Craig was the first actor with blonde hair and blue eyes to play 007, fans decided that Bond just couldn't have blonde hair and blue eyes, also claiming that he was "too average-looking." Of course, after nearly a decade in the role, Daniel Craig has cemented himself as one of the best Bonds ever. His debut in "Casino Royale" is one of the best-reviewed Bond films to date and "Skyfall" became the first film of the series to earn over a billion dollars.

10 MICHAEL CLARKE DUNCAN (KINGPIN)

Michael-Clarke-Duncan-Kingpin-Wilson-Fisk

2003's "Daredevil" didn't have a lot going for it. The dialogue was badly written, the set pieces were often silly, the soundtrack was dominated by early-2000's nu metal bands like Evanescence and Nickelback, and for the most part, the casting was completely wrong. Ironically, the actor who was most suited for the role he took was the one who received the most controversy, the late Michael Clarke Duncan. Duncan took the role of Wilson Fisk, the Kingpin of Crime, who had always been portrayed as white, bald and physically dominating.

Other than his skin color, Duncan fit that bill perfectly, and the little bit of screentime he had ended up being some of the best scenes of the movie. He plays the character less on the sensitive side as Vincent D'Onofrio, and more as the ruthless comics villain. Both sides are equally valid for the character and no one would say D'Onofrio's portrayal isn't ruthless, but Duncan brought something that was just extra frightening to the role.

9 ANNE HATHAWAY (CATWOMAN)

Anne-Hathaway-Catwoman

Selina Kyle is a cunning, manipulative and sensuous character, all qualities that fans were sure the sweet, sugary Anne Hathaway would not be able to pull off convincingly for the finale of Christopher Nolan's Batman trilogy in "The Dark Knight Rises." Her filmography was filled with sappy romantic comedies and she was most well known for her breakout role as the ugly-duckling-turned princess in "The Princess Diaries" more than a decade before.

Hathaway proved her acting prowess once again, surprising fans with a coy, alluring performance that was widely praised by critics including Vanity fair, who said she was, "the best Catwoman ever." The film is certainly not without its flaws, but Hathaway certainly wasn't one of them. Some fans have even gone so far as to say that, to some degree, Hathaway's Selina Kyle is a more interesting character in the film than Bruce Wayne himself, or any other character for that matter. Let's not forget, they always could have brought back Halle Berry.

8 ROBERT DOWNEY JR. (SHERLOCK HOLMES)

robert-downey-jr-sherlock-holmes

Robert Downey Jr. is no stranger to casting controversy. He was a big surprise to fans as Tony Stark and he somehow got away with wearing blackface makeup in "Tropic Thunder," but the actor has made a habit of subverting the expectations of fans. One of the biggest issues fans took issue with was that Sherlock Holmes is traditionally British while Downey Jr. is obviously American. To make matters worse, Holmes' close friend and partner, Dr. John Watson, was played by the actually British and equally talented Jude Law.

Fans worried about Downey Jr's ability to pull off the proper British accent and the stiff, refined demeanor that the character was known for, and even if he did pull off everything right, they were worried that his performance wouldn't be believable, because you know you're watching Robert Downey Jr. and all you can see is Tony Stark doing a British accent. While there has been some criticism that the movie is too action-y, RDJ's portrayal of the character is as close to book-accurate as had ever been portrayed on the screen.

7 TOBEY MAGUIRE (SPIDER-MAN)

tobey-maguire-spiderman

When you cast an actor who has never performed in an action sequence before for the lead role in a superhero movie, you're bound to encounter a lot of opposition and questions of whether or not they can handle themselves in a fight. It gets even worse when you're casting one of the most beloved superheroes of all time. Before he took on the role of Spider-Man, Tobey Maguire was most widely known for movies like "Pleasantville" or as the weird-looking, sweaty blonde kid that Hunter S. Thompson and Dr. Gonzo pick up in the desert.

The difficult thing with casting Peter Parker, though, is that you have to get someone who can be equally believable as a bullied, downtrodden high school nerd and an agile, web-slinging crime fighter, with the additional caveat of having the comedic timing to pull off Spidey's wisecracks. Maguire has no issue playing the gawky teenager but surprisingly managed to be equally believable as the athletic crimefighter after he has his run-in with the genetically engineered spider.

6 PAUL RUDD (ANT-MAN)

Paul Rudd as Scott Lang in Ant-Man

Paul Rudd was, and still is, largely known for his comedic roles, often in teen romances or Seth Rogen stoner comedies. "Superhero" wasn't really a word that came to mind when you thought of him. To add to that, Marvel films have a reputation for hitting all sides of the spectrum with emotional dramatic character development, comedy and action. Marvel films also like to make their films all lean toward a specific genre. "Captain America: The Winter Soldier" leaned toward spy thriller, "Guardians of the Galaxy" leaned toward sci-fi space opera and "Ant-Man" was always meant to fit firmly into the comedy subgenre.

Paul Rudd had proven himself as a comedian, but a dramatic actor? An action brawler? The goofy guy who taught the world about Sex Panther cologne in "Anchorman" was going to fight alongside Captain America and Iron Man? Well, 60% of the time, Marvel gets it right every time. Critics were positive "Ant-Man" would be Marvel's first failure. However, not only was it one of Marvel's funniest films yet, but Paul Rudd got into fighting shape for the part and nailed the "vulnerable divorced dad trying to do right by his daughter" beat astonishingly.

5 CHRIS PRATT (STAR-LORD)

Star-Lord played by Chris Pratt

Before Chris Pratt became the new muscle-bound Hollywood heartthrob, he was pretty much known only as the chubby dumb guy on "Parks and Recreation." Hilarious, loveable and sweet, sure, but not a space pirate, superhero or legendary outlaw. Thankfully, the casting department at Marvel Studios (specifically Sarah Halley Finn, in case you're wondering who the best casting director of all time is) has a special talent for seeing past people's previous typecasting to fit the perfect actor to the perfect role.

Casual fans (and even some comic readers) had no idea who the Guardians of the Galaxy were before the 2014 film, and some critics were calling it Marvel's first surefire flop before it had even released. After its release, the tune changed considerably, with some fans considering it the best Marvel movie to date. With the sequel already receiving perfect scores from audiences at test screenings, it's safe to say that the former loveable idiot has cemented his place as a superhero in the history books.

4 MICHAEL KEATON (BATMAN)

michael-keaton-batman-header

The year was 1989. Batman hadn't appeared in a live-action film since Adam West had the role in 1966's "Batman: The Movie," and in the meantime, the comics had gotten considerably more dark, dramatic and serious than they were in the mid-1960s. Superhero films weren't the guaranteed hits that they are these days, but Batman was one of the most popular heroes around. Batfans waited with bated breath when the first real Batman movie ever was announced. Who could fill the cowl of the Dark Knight? Oh, how about Mr. Mom?

It's hard to imagine now, but Michael Keaton wasn't the fan-favorite actor he is now, and fan reactions from his casting announcement as Batman were the polar opposite of the reaction to his casting 27 years later as classic Spider-Man villain, The Vulture. Despite the controversy, Keaton's performance is still considered to be one of the best live-action versions of Batman to this day, with four other actors attempting to don the Bat-cowl since with mixed results.

3 HEATH LEDGER (THE JOKER)

heath-ledger-as-the-Joker

Some performances are legendary because, after the role, you can't see anybody else in the part. Other times, it's because you can't even recognize the actor behind the character while you're watching the movie. When Heath Ledger walked into the audition room for the role of the Joker in "The Dark Knight," it's likely that not even his co-stars weren't expecting to take him seriously. Batman fans certainly weren't enthused about seeing the guy from "10 Things I Hate About You" and "Brokeback Mountain" as the homicidal Clown Prince of Crime.

Sadly, Heath Ledger never got to see how audiences would react to what would come to be considered his defining role, as he tragically passed away just six months before the film was released. He even won the 2009 Academy Award for Best Actor in a Supporting Role, which would have been his first Oscar win, becoming the first and only actor in history to win the award after death.

2 RYAN REYNOLDS (DEADPOOL)

ryan-reynolds-deadpool

No one is ever going to argue that Ryan Reynolds is not a very attractive man. He won People Magazine's "Sexiest Man Alive" in 2010 after all, so when it was announced that he would be playing the ugliest merc in the business, some eyebrows got raised. He'd proven he could handle dramatic acting, he'd proven he had fantastic comedic timing and he even got to prove his action movie skills in another Marvel movie, "Blade: Trinity," as the wisecracking Hannibal King, but fans weren't so hot on the idea of bringing back the guy who played Wade Wilson in the movie that destroyed the character of Deadpool by turning him into a mute bio-experiment with Baraka swords in his forearms.

It wasn't so widely known that Reynolds actually left "X-Men Origins: Wolverine" partway through production because they were ruining his favorite character, or that the actor had been petitioning a Deadpool movie for years, but only if it could remain faithful to the comic books. Fans (and the studio) gave "Deadpool" a chance though, and it was worth it, quickly becoming the highest-grossing R-rated film of all time and making Deadpool a household name.

1 ROBERT DOWNEY JR. (IRON MAN)

robert-downey-jr-iron-man

If Robert Downey Jr. seems cocky in interviews these days, it's because he's earned the right. This is a guy whose face launched one of the most successful franchises in film history, a franchise that, almost a decade in, only shows signs of growing bigger, more successful and at a faster rate than ever before. Even if Iron Man is your least favorite Avenger, if you love "Guardians of the Galaxy," or Netflix's "Daredevil" or "Agents of S.H.I.E.L.D" or the prospect of the first good Spider-Man movie in years, you better pay some respect to Robert Downey Jr... and nobody wanted him.

Suffice it to say, RDJ had a very troubled past. He was a powerhouse performer in the '80s and early '90s, but fell into obscurity for a time after a troubling bout with addiction, criminal behavior and even prison time. For a time, he was considered a washed up joke by Hollywood and a tragic example of wasted talent, but when he met his current wife, Susan Levin, everything changed. Through therapy, various recovery programs and meditation, RDJ described getting clean as "like coming out of a 20-year-coma" and he became our Iron Man.

Whose casting did you think wasn't going to work well, but helped define the character they played? Let us know in the comments!