gaseous-giganticus: fix png image scaling problem

Lots of little problems.

1. rows of png image data must start of 4 byte boundary.
2. when scaling from target image space to source image space,
   you must convert things to (int) at just the right place,
   etc.

This was absurdly hard to fix considering how simple it is.