Чтобы расширить ответ Амаргоша, обратитесь к конструктору ImageSnapshot
ImageSnapshot(width:int, height:int, data:ByteArray, contentType:String)
Поле data
не ожидает данные пикселей BitmapData (bmp.getPixels
), оно ожидает данные, закодированные в данном contentType
. Так что вы могли бы сделать:
var encoder:PNGEncoder = new PNGEncoder();
var bytes:ByteArray = encoder.encode(bmp);
new ImageSnapshot(width, height, bytes, encoder.contentType);
Как только вам все равно придется кодировать его самостоятельно, вам, вероятно, следует покончить со вторым справочником ImageSnapshot
и использовать:
new FileReference().save(bytes, "abc.png");