If I'm able to put it under an MIT License then sure
That code is completely unencumbered, so anybody can use it however you like. Pfease feel free to use it in a MIT Licensed project.

Oh, I don't know about PNG files, but BMP files are pretty braindead simple. See GitHub - hamsternz/my_bmp: A utility for writing out RGB pixel data as BMP files. for some code you can lift.

Oh I did look at the cause of the bias in the least significant bits of your my_rand() - it was the multiplication just before the end. It's because
Code:
odd * odd = odd
odd * even = even
even * odd = even
even * even = even
So if the two numbers being multiplied are 'pretty much random' then the result of the multiply will have three '1's for every '0' in the LSB.