Testing JPG Compression - The original image is a 4.887.524 byte 5000x5000 JPG, 4:4:4 Q100 / Floating Point DCT / Progressive / Optimized / Restart Markers (You know, i really needed that extra 500 kb)
Result: The image was (as expected) reduced to 1280x1280, the subsampling was preserved but the DCT switched from progressive to baseline. The filesize was reduced to 434.550 byte
Testing JPG Compression - The original image is a 4.465.961 byte 1280x1280 JPG, 4:4:4 Q100 / Floating Point DCT / Progressive / Optimized / Restart Markers
Result: All the parameters preserved, Including Progressive DCT and filesize (4.465.961 byte)
So what? Well, for starter every image that does not fit the _1280 container (width over 1280 pixels, height over 1960 [iirc] pixels) is automatically converted to JPG with baseline DCT and (if a subsample isn’t specified, as with non-jpg files) 4:2:2 chroma subsampling.
So don’t give tumblr images too big or it’ll wreck it into a mess of artifacts. Doesn’t matter the size in bytes, but the actual width and height. If you must, resize it yourself or cut it down in smaller images and upload them separately in the same photoset (former is better for large JPG or GIF, latter is better for PNG files)
or, you know, upload them somewhere else. You can then link them in your tumblr. A lot of people do that.
[ Except Zerochan. Don’t use Zerochan ever. Ever ]