Tdh merged 2

Explaining why this needs to decode, decode until it's within bounds, and then decode once more would be helpful.

Why don't you need to look at the return value of decodeFile? The way I read the docs, it returns the decoded bitmap, but this code looks like it's expecting the original file to get decoded.