as 拍照 上传

来源:互联网 发布:菲乐士双立人wmf 知乎 编辑:程序博客网 时间:2024/04/28 18:05



import mx.controls.Alert;
import mx.events.FlexEvent;
import mx.graphics.codec.PNGEncoder;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import mx.utils.Base64Encoder;


private var cam:Camera;


protected function encode(byteArray:ByteArray):String{
var base64Encoding:Base64Encoder = new Base64Encoder();
base64Encoding.encodeBytes(byteArray , 0 , byteArray.length);
return base64Encoding.toString();
}

protected function application1_creationCompleteHandler(event:FlexEvent):void 
{
cam = Camera.getCamera("0");

cam.setMode(100 , 100 , 15 , false);

var video:Video = new Video();
video.attachCamera(cam);
video.width = 100;
video.height = 100;

Alert.show("cam.height" + cam.width + "--" + cam.height);

Alert.show("video.heigh" + video.width + "--" + video.height);

var camArray:Array = Camera.names;
trace(camArray);
vd.addChild(video);
}

protected function button1_clickHandler(event:MouseEvent):void
{

Alert.show("" + vd.width + "--" + vd.height);
var bitmapData:BitmapData = new BitmapData(vd.width , vd.height);

// var bitmapData:BitmapData = new BitmapData(50 , 50);


bitmapData.draw(vd);

var png:PNGEncoder = new PNGEncoder();
// mx.graphics.codec.PNGEncoder

// mx.graphics.codec.JPEGEncoder


var byteArray:ByteArray = png.encode(bitmapData);


var f:FileReference  = new FileReference();
f.save(byteArray);

// byteArray.endian = Endian.BIG_ENDIAN;
// byteArray.endian = Endian.LITTLE_ENDIAN;


var service:HTTPService = new HTTPService();
service.method = URLRequestMethod.POST;

service.contentType = "application/octet-stream";
service.headers["accept"] = "*/*";
service.headers["piclength"] = byteArray.length;

service.url = "http://127.0.0.1:8080/upload/upload";

// service.addEventListener( Event.DEACTIVATE , completeHandle4 );
// service.addEventListener( Event.ACTIVATE , completeHandle3 );
// service.addEventListener( InvokeEvent.INVOKE , completeHandle6 );
service.addEventListener( ResultEvent.RESULT ,  completeHandle);
// service.addEventListener( FaultEvent.FAULT , completeHandle5 );

// Alert.show(""+byteArray.length);

service.showBusyCursor = true;

service.send(byteArray);


}

private function completeHandle(e:ResultEvent):void{
trace(e.result)
// Alert.show("上传成功!");
}


package imgservlet;import java.awt.image.BufferedImage;import java.io.BufferedInputStream;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import javax.imageio.ImageIO;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import net.coobird.thumbnailator.Thumbnails;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import sun.misc.BASE64Encoder;import facepp.FaceUtil;@WebServlet("/upload")public class Upload extends HttpServlet {private static final long serialVersionUID = 1L;        public Upload() {        super();    }    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {}    private byte[] input2byte(InputStream inStream)                throws IOException {            ByteArrayOutputStream swapStream = new ByteArrayOutputStream();          byte[] buff = new byte[100];          int rc = 0;          while ((rc = inStream.read(buff, 0, 100)) > 0) {              swapStream.write(buff, 0, rc);          }          byte[] in2b = swapStream.toByteArray();          return in2b;      }  protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Long s = System.currentTimeMillis();InputStream is = request.getInputStream();BufferedImage bi = Thumbnails.of(is).scale(0.5).outputQuality(0.3).asBufferedImage();ByteArrayOutputStream baos = new ByteArrayOutputStream();ImageIO.write(bi, "png", baos);//BufferedInputStream bis = new BufferedInputStream(is);//Integer piclength = Integer.valueOf(request.getHeader("piclength"));//byte[] b = new byte[500];//int rc = 0;//ByteArrayOutputStream baos = new ByteArrayOutputStream();//while((rc = bis.read(b)) > 0){//baos.write(b, 0, rc);//}byte[] faceData = baos.toByteArray();JSONObject rs = FaceUtil.faceDetect(faceData);System.out.println(rs.toString());baos.flush();baos.close();//        BASE64Encoder encoder = new BASE64Encoder();//        return encoder.encode(data);//返回Base64编码过的字节数组字符串try {JSONArray faceArray = rs.getJSONArray("face");String img_id = rs.getString("img_id");//        //        return encoder.encode(data);//返回Base64编码过的字节数组字符串BASE64Encoder encoder = new BASE64Encoder();System.out.println(faceData.length);System.out.println(encoder.encode(faceData).getBytes().length);persistenceFace(faceData , img_id);} catch (JSONException e) {e.printStackTrace();}System.out.println(System.currentTimeMillis() - s);}private void persistenceFace(byte[] data , String img_id){File f = new File("C:/facePic/" + img_id + ".png");try {FileOutputStream fos = new FileOutputStream(f);fos.write(data);fos.flush();fos.close();} catch (Exception e) {e.printStackTrace();}}}


0 0