@ChrisCudmore Regardless of who gets the final checkmark on the email puzzle (though it will likely be him, once the entire answer has been found, and posted), 2012campion deserves the bounty, imo, due to him decoding the main portion of the puzzle.
Considering it took me so long to understand your hints directly addressed to me, and that (once I unfooled myself) decoding the image only took about 30 seconds of work (and only then because I cheated by using the original image that wasn't enciphered), I don't think I deserve it.
Oh f***, I just realized what I did wrong: I used ImageSubtract instead of ImageDifference, so I only saw bits that were set in the encoded image and unset in the cover image (basically I and'd with the negation of the cover); that's why the distribution of bits was cut by half, and why all the high bits in the "difference" were unset! Yeah, I officially s*ck at this.
@2012rcampion Yeah, I understand that. But it's okay - you still had the right process for decoding the image, itself, which I provided a clue for, but no one has figured out, yet. So you got the text without the clue telling you how, even if you started from the wrong data.
Honestly, I couldn't even find a tool to encode/decode the image properly in the method that I wanted, so I had to write one that did it. I then wrote another to decode a different way to make sure I completely understood what it was doing. Haha
(Looking again, I see that Alconja has given the answer to that clue, now) =D
@Khale_Kitha I totally understand that: I did something similar for my upcoming puzzle =)
If you're interested, the 30-second program I wrote to actually decode the image: `FromCharacterCode[FromDigits[Reverse@#,2]&/@Partition[Mod[Flatten@ImageData[RemoveAlphaChannel@Import["https://i.sstatic.net/JGb04.png"],Automatic],2],8]]`
I ran into one, the other day, that was utterly ridiculous. Let me see if I can find it. It involved some language that was created ENTIRELY for code golf. But it's FAR past the point of being "more unreadable than you would think possible."
Jelly, 5 bytes
×4’½Ḟ
This uses a closed form of @KennyLau's approach. Try it online! or verify all test cases.
Due to a lucky coincidence, Ḟ is overloaded as floor/real for real/complex numbers. This is one of the only three overloaded atoms in Jelly.
How it works
×4’½Ḟ Main link. Argument...
One of the principles of compression is that well-compressed data looks as much like random noise as possible, so it's not surprising that golfing languages approach unreadability