About Black Dilbert

The concept for Black Dilbert came about while reading Dilbert comics and realizing that I couldn’t relate to Dilbert himself (a polite way of saying I didn’t find them funny). After playing with different ways to make them more engaging I arrived at Black Dilbert. Changing the pixels changed the context from office politics to race politics. Maybe it’s my ignorance, but I’m not sure if I viewed Dilbert as being white until now. I think I just saw him as a cartoon. But it’s hard to say the same of Black Dilbert. He’s constantly facing discrimination.

My Mission

Currently the application converts all R,G,B values of a certain value (i.e. lighter skin) to another value (i.e. darker skin). I’d like to update the script so that only Dilbert’s skin color is changed (it’s just funnier this way).

But how?

I tried converting Dilbert’s red shirt (which he started wearing for maybe the best year) to dark skin. But it just kind of looks like he's not wearing a shirt...

So it doesn’t seem a way this can be solved with RGB values. Other ideas?

The imageData object (which stores the RGB value) does have a method for returning width and height... but I'm not sure what for? Maybe it's used for how long to run that pixel RGB value? For instance, if you have a long repeating pixel values - and you want to save memory). But, if there is a way to find the x,y position of particular pixels (e.g. Dilbert’s red shirt) then maybe you limit the darker RGB values to a certain proximity (e.g. if { white skin RGB is within 50px radius} then convert to dark skin). But there a few problems: i) sometimes characters are close to Dilbert’s red shirt, ii) sometimes Dilbert’s shirt is not in the frame, and iii) perhaps the biggest problem, the mapping of the pixels is one long array, making it very hard to map out a 2D mapping (though I suppose you could calculate the canvas width/height and deduce a 2D projection?).

If it was just Dilbert in the frame, you could limit your darker skin function to that frame. But that’s not always the case. So I think red shirt is out the door.

Maybe you detect for pixel patterns? For example, find the pattern of Black, White, Black pixels (i.e. Black frame glasses) to find Dilbert’s iconic glasses and face. Then convert all pixels surrounding this pattern. Again, given the 1D array of RGB values, this would be quite tricky. And what about his hands?!? And his buddy wears a similar style of frames.

The only other way I can think of is to train a bot for identifying Dilbert, but that won't be easy.

If you have any ideas on how we can make Dilbert Black, please contact me@danielroberthawkins.com and share with your smart friends #MakeDilbertBlackAgain