DM: fix -w/-r problems stemming from PM/UPM conversions.

DM will now read and write a custom image format, which begins first with a
normal PNG, but also includes the bitmap's raw pixels.  Most tools (file
browser, Preview, Chrome, Skia image decoder) will read the file as PNG.  DM
skips the encoded PNG and reads the raw pixels instead.

This scheme allows perfect pixel comparisons that never go through PM -> UPM or
UPM -> PM conversions, as long as you compare on a machine with the same native
pixel format as the machine which generated the images.  Since we've only ever
used this to do same-machine comparisons, that's more than good enough for now.
We could convert as needed to a standardized PM pixel format if we find we want
these files to be portable.

DM -w output now does increase to ~1.3G.  If that turns out to be annoyingly
big, I'm sure I can come up with a simple pixelwise RLE instead of writing
uncompressed pixels.

BUG=skia:
R=reed@google.com, bsalomon@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/185343002

git-svn-id: http://skia.googlecode.com/svn/trunk@13638 2bbb7eff-a529-9590-31e7-b0007b416f81
1 file changed