在Flex應用中,我們經常需要製作一些截圖效果,下面給大家分享截圖製作step by step:
Flex端UI呈現:
應用API:import mx.graphics.ImageSnapshot;
var imageSnap:ImageSnapshot = ImageSnapshot.captureImage(source);
var encoded_jpg:JPEGEncoder = new JPEGEncoder(100);
var imageByteArray:ByteArray = imageSnap.data as ByteArray;
Flex向Server發送請求:
- var req:URLRequest = new URLRequest();
- req.method = URLRequestMethod.POST;
- req.data = snapshot.data;
- req.contentType="application/octet-stream";
- req.url = "snapshotuploadhandler.aspx";
- var loader:URLLoader = new URLLoader;
- loader.load(req);
Base64算法: ByteArray -> String
在URLRequest之中,data可傳遞Binary格式的數據。
但在下列代碼之中,URLVariables做爲Object,其內容均爲key-value格式,所以,Img對象賦值傳參過程以String類型呈現:
var variables:URLVariables = new URLVariables();
variables.img = encoded;
variables.vid = '77';
request.data = variables;
爲處理這一情況,我們需要提供img對象的Base64解碼。
Base64編碼與解碼例程參見:
http://www.cordyblog.cn/?action=show&id=49encoded對象以Base64.encodeByteArray(imageByteArray)編碼後作爲Request對象的參數傳遞
clear,搞定,大家可以試一下,加油!