如何将图像字节(从网络摄像头拍摄)从flex(4.6版本)发送到dotnet

时间:2013-09-25 04:57:29

标签: actionscript-3 flex c#-4.0 oracle11g flex4.6

在我的项目中,我们使用adobe flash builder 4.6作为客户端脚本,visual studio作为中介(用于连接oracle数据库)。在此,在flex 4.6中我们从网络摄像头捕获的图像工作正常,之后捕获图像我们需要在oracle数据库中保存这个捕获的图像,所以为了节省我们需要将这个图像从flex传递到dot-net(visual studio)所以我需要一个关于如何处理这个的帮助(传递图像)从flex到dot-net)如果有人知道请帮帮我,我将非常感谢他们

1 个答案:

答案 0 :(得分:0)

Finally i got the solution,what i did is



<mx:HTTPService id="savepcktdata"  method="POST"
                      url="{URL}com/...../..../PckInbox.aspx"
                      result="savepcktdata_resultHandler(event)"                        
                      resultFormat="text">
                  <mx:request>
                      <Operation>savepcktdata</Operation>       
                   <bytes>
                         {str64enc}
                   </bytes>
                  </mx:request>   
</mx:HTTPService>

您必须通过Httpservice从flex传递base64string到dotnet

我们将从网络摄像头拍摄照片后获取图像,并在获取字符后需要使用    按如下方式对这些图像字节进行一些转换,然后你需要传递给base64字符串    下面的方法描述了如何进行转换;

[Bindable]public var imgbytes:ByteArray=new ByteArray(); 
[Bindable]public var str64enc:String="";

    protected function btnimage_clickHandler(event:MouseEvent):void
  {
    // TODO Auto-generated method stub
    if(webimage1.content==null)
    {
     takepicture1();
    }
    else if(webimage2.content==null)
    {
     takepicture2();
    }

 }

这里webimage1是图像标签的id,如...

 <mx:Image id="webimage1" height="18" width="20"/>



    public function takepicture1():void
   `{
     var urlRequest:URLRequest = new URLRequest();
     var picture1:BitmapData=new BitmapData(vddisplay.height,vddisplay.width);
     picture1.draw(vddisplay);
     webimage1.source=new Bitmap(picture1);
     var je1:JPEGEncoder=new JPEGEncoder(50);
     imgbytes=je1.encode(picture1);
     var base64enc:Base64Encoder=new Base64Encoder();
     base64enc.encodeBytes(imgbytes); 
     str64enc=base64enc.toString();
   }

`

在Dotnet;

string str = Convert.ToString(Request.Form["bytes"]);