Frage

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

Ab jetzt schicke ich meine JPEG-Daten auf den Server mit dem Code oben.
Das Problem ist, dass es fast die Größe des Daten verdoppelt.
Gibt es eine Möglichkeit, die Bilddaten ohne Verwendung einer Codierung direkt zu senden.

War es hilfreich?

Lösung 2

Hier ist ein Beispiel von Bilddaten zu senden, ohne Base64 mit:

 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;

Auf PHP Seite, muss ich Zugang:

 $globalS["HTTP_raw_post_data"]

Andere Tipps

base64 erhöht Größe um ein Drittel, also wenn Sie wirklich über 100% Overhead haben, haben Sie ein Problem an anderer Stelle.

habe an den Quellen nicht gut aussieht, aber von der Referenz es scheint, könnten Sie die binär direkt Daten.

Tuck nur, dass in einem URLRequest und senden sie es per POST .

Sie können den Schnappschuss als jpg oder png speichern.

Schauen Sie sich auf: http://blog.flexexamples.com/2007/12/07/using-the-imagesnapshot-class-to-capture-images-as-jpegs-or-pngs-in-flex-3 /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top