void onMessage(MessageEvent event)
{
print("received!");
var f = new FileReader();
print("received!2");
// f.readAsArrayBuffer(event.data);
var ubuf = new Uint8List(event.data);
var imgData = canvas.createImageData(100,100);
print("received!6");
var j = 0;
for (var i=0;i<imgData.data.length;i+=4)
{
imgData.data[i+0]=ubuf[j];
imgData.data[i+1]=ubuf[j+1];
imgData.data[i+2]=ubuf[j+2];
imgData.data[i+3]=255;
j+=3;
}
print("received!7");
canvas.putImageData(imgData,0,0);
}
Future<String> loadBlobAsDataUri(Blob blob) { var fileReader = new FileReader(); var future = fileReader.onLoad.first.then((ProgressEvent event) { return fileReader.result; });
fileReader.readAsDataUrl(blob); return future;}
Future<ImageElement> loadBlobAsImg(Blob blob) { ImageElement image = new ImageElement(); return loadBlobAsDataUri(blob).then((String dataUri) { var loaded = image.onLoad.first; image.src = dataUri; return loaded.then((_) => image); });}
loadBlobAsImg(blob).then((img) => canvas.drawImage(img));
<img src="data:image/png;base64,iVBORw0KGg
oAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI
12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />
Whitespace, including carriage returns, is allowed in
the URI if it is base64 encoded.
So loading a blob (or a file) as a data URI returns a long string
starting with "data:" and actually containing the data from the blob.
--
For other discussions, see https://groups.google.com/a/dartlang.org/
For HOWTO questions, visit http://stackoverflow.com/tags/dart
To file a bug report or feature request, go to http://www.dartbug.com/new
To unsubscribe from this group and stop receiving emails from it, send an email to misc+uns...@dartlang.org.
var a = func();