This image discrepancy is a huge pet peeve of mine.
Every year there are a handful of incidents involving NBA players getting in trouble, like JR Smith or a random Pacer. And then there are usually a few stories about ex-NBA players getting in trouble, like Antoine, Marbury or Barkley. But added together, there are maybe 10 incidents per year.
The NFL, on the other hand, seems to have illegal incidents much more regularly and without the "breaking news" microscope that the NBA receives. If the NBA had an offseason that the NFL had, with Plaxico and Vick, etc., it would be out of business and that is only a mild exaggeration.
MLB players can fight and even use bats while fighting and receive only 5-10 game suspensions. NBA players receive that for a scuffle.
There are some possible explanations for these discrepancies. For example, an NFL roster is five times larger than an NBA roster, so it would make sense that there would be larger numbers of incidents. And people say that the visibility of NBA players (no helmet, hat, etc) leads to the greater focus on them individually. But, as others have said, it also seems like a large part of it is due to racism on some level.