Hello,
I have a large image that exceeds the bitmapdata limits, so I am trying to break it up into 4 separate images and encode them separately using the PNGEncoder. The first 1 comes out great. The remainly 3 all contain the same bytearray data and result in a blank image. Here is my code.
public function encodeUsersDrawing():void{
pngImageQuadrant1 = new BitmapData(1875, 2400, true);
pngImageQuadrant2 = new BitmapData(1875, 2400, true);
pngImageQuadrant3 = new BitmapData(1875, 2400, true);
pngImageQuadrant4 = new BitmapData(1875, 2400, true);
pngImageQuadrant1.draw(productObject.canvas, null, null, null, new Rectangle( 0, 0, 1875, 2400 ), true );
pngImageQuadrant2.draw(productObject.canvas, null, null, null, new Rectangle( 1875, 0, 1875, 2400 ), true );
pngImageQuadrant3.draw(productObject.canvas, null, null, null, new Rectangle( 0, 2400, 1875, 2400 ), true );
pngImageQuadrant4.draw(productObject.canvas, null, null, null, new Rectangle( 1875, 2400, 1875, 2400 ), true );
Quadrant1ByteArray = PNGEncoder.encode(pngImageQuadrant1);
Quadrant2ByteArray = PNGEncoder.encode(pngImageQuadrant2);
Quadrant3ByteArray = PNGEncoder.encode(pngImageQuadrant3);
Quadrant4ByteArray = PNGEncoder.encode(pngImageQuadrant4);
sendPNG();
private function sendPNG():void{
var encodedQuadrant1:String=Base64.encodeByteArray(Quadrant1ByteArray);
var encodedQuadrant2:String=Base64.encodeByteArray(Quadrant2ByteArray);
var encodedQuadrant3:String=Base64.encodeByteArray(Quadrant3ByteArray);
var encodedQuadrant4:String=Base64.encodeByteArray(Quadrant4ByteArray);
//var encoded:String=Base64.encodeByteArray(byte_array);
var variables:URLVariables=new URLVariables();
variables.pngQuadrant1=encodedQuadrant1;
variables.pngQuadrant2=encodedQuadrant2;
variables.pngQuadrant3=encodedQuadrant3;
variables.pngQuadrant4=encodedQuadrant4;
var sendPNGINFO:URLRequest=new URLRequest();
sendPNGINFO.url="../system/swfProcessImage.php";
sendPNGINFO.method=URLRequestMethod.POST;
sendPNGINFO.data=variables;
var loader:URLLoader=new URLLoader();
loader.dataFormat=URLLoaderDataFormat.BINARY;
addLoaderListeners(loader);
try
{
loader.load(sendPNGINFO);
}
catch (error:Error)
{
trace('Unable to load the document.');
}
}
thanks for any help!
~squirt