Код AS3:
var bmd:BitmapData = new BitmapData(1, 1, true, 0x00808080);
var p:uint = bmd.getPixel32(0, 0);
trace( "p : " + p ); //0
беда не в кодировщике, а в самом BitmapData, любой енкодер получит этот ноль на входе
т.е. обойти можно только какими-то внутренними 'договоренностями', типа ставить не ноль, а 0x01, ну и как-то учитывать при дальнейших манипуляциях
к слову, а для чего именно такой png ( 0,127,127,127) может сгодится ?