we were allocating 100kb in the C stack for a temporary string, instead format directly to the destination area some libc have very limited space on the C stack and can't afford this see https://github.com/lovell/sharp/issues/242