- XHR, text transfer, image data encoded as Base64. (traffic+, server load+, client load-)
- XHR2, binary transfer, encoded to Base64 on client-side. (traffic-, server load, client load+)
- PngImage, command-stream encoded in image and extracted with getImageData. Should be fast, but causes browsers to crash and eat tons of memory - so not benchmarked for now. (traffic-, server load-, client load?)
All in all, its amazing in how many ways things can be done - all of them beeing suboptimal. I have to render an image to a canvas (which can cause precission loss) to be able to access its pixel-values. Even if I have the binary data in a ArrayBuffer, I have to pass image-data using data-URIs - that sucks.