Pergunta

var is:ImageSnapshot = myImagesnapshot;
var str:String = ImageSnapshot.encodeImageAsBase64(is);

A partir de agora, estou enviando meus dados JPEG para o servidor com o código acima.
O problema é que quase dobra o tamanho dos dados.
Existe uma maneira de enviar os dados da imagem diretamente sem usar nenhuma codificação.

Foi útil?

Solução 2

Aqui está uma amostra de envio de dados de imagem sem usar Base64:

 var myEncoder:JPGEncoder = new JPGEncoder(100);
 var byteArray:ByteArray = myEncoder.encode(bitmapData);
 var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
    var url:String = "../../default.php";
    var saveJPG:URLRequest = new URLRequest(url);
    saveJPG.requestHeaders.push(header);
    saveJPG.method = URLRequestMethod.POST;
    saveJPG.data = byteArray;

No lado do PHP, preciso acessar:

 $globalS["HTTP_raw_post_data"]

Outras dicas

Base64 aumenta o tamanho em um terço; portanto, se você realmente tiver cerca de 100% de sobrecarga, terá um problema em outro lugar.

Não olhou para as fontes para bem, mas, a partir da referência, você pode recuperar o dados binários diretamente.

Apenas enfie isso em um UrlRequest e envie por PUBLICAR.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top