Здравствуйте,
Копирую часть _root в BitmapData с масштабированием, а затем кодирую JPEGEncoder-ом. В результате получается с виду валидный файл (по крайней мере, он начинается с 0хFFD8,0xFFE0 и заканчивается 0xFFD9). Но файл никто не хочет открывать. Все пишут, что он поврежден или там что-то некорректное.
Проблема, которую я пытаюсь решить, состоит в довольно большом размере картинки, которую я пытаюсь создать в результате. Если пытаться создать BitmapData в полный размер (~8000x5000), то просто выскакивает ошибка. Поэтому я делю все на части и пытаюсь выдать по частям. При делении на 6x6 ошибки нет, но результат либо вообще без валидного терминатора, либо терминатор есть, но файл все равно ничем не открывается.
Код создания:

Код AS3:
public function getImgBinary(kX:Number, splitFactor:Number, outRectNumX:Number, outRectNumY:Number):String {
// result size
var szX:Number = Math.ceil(this.stage.stageWidth * kX / splitFactor);
var szY:Number = Math.ceil(this.stage.stageHeight * kX / splitFactor);
// capture size
var capSzX:Number = Math.floor(this.stage.stageWidth / splitFactor);
var capSzY:Number = Math.floor(this.stage.stageHeight / splitFactor);
// capture start position
var capX:Number = outRectNumX * capSzX;
var capY:Number = outRectNumY * capSzY;
// capture matrix
var mtx:Matrix = new Matrix(kX, 0, 0, kX, -capX, -capY);
// result
var bmp:BitmapData = new BitmapData(szX, szY, false, 0xFFFFFFFF);
bmp.draw(this, mtx, null, null, new Rectangle(0, 0, capSzX, capSzY), false);
//
//var b:ByteArray = PNGEncoder.encode(bmp);
//
var encoder:JPGEncoder = new JPGEncoder(100);
var b:ByteArray = encoder.encode(bmp);
//
var b64:Base64Encoder = new Base64Encoder();
b64.encodeBytes(b);
return b64.toString();
}
Вариант с PNGEncoder-ом тоже дает аналогичный результат.
Полученный JPG файл присоединяю.
Пытался обновить сам код com.adobe.images.* с оф. сайта. Не помогает.
Заранее спасибо.