Flex 视频 图象处理.docx

上传人:b****8 文档编号:30146171 上传时间:2023-08-05 格式:DOCX 页数:38 大小:27.23KB
下载 相关 举报
Flex 视频 图象处理.docx_第1页
第1页 / 共38页
Flex 视频 图象处理.docx_第2页
第2页 / 共38页
Flex 视频 图象处理.docx_第3页
第3页 / 共38页
Flex 视频 图象处理.docx_第4页
第4页 / 共38页
Flex 视频 图象处理.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

Flex 视频 图象处理.docx

《Flex 视频 图象处理.docx》由会员分享,可在线阅读,更多相关《Flex 视频 图象处理.docx(38页珍藏版)》请在冰豆网上搜索。

Flex 视频 图象处理.docx

Flex视频图象处理

Flex采集摄像头照片----增加裁剪功能

由于系统中用到的flex采集照片需要裁减功能,就把前几天搜到的Flex源码进行了修改,实现了裁减功能,不过做的比较简单,呵呵!

Flex部分:

xmlversion="1.0"encoding="utf-8"?

>

Applicationxmlns:

mx="layout="absolute"creationComplete="initApp()">

Style>

Alert{font-size:

12px;}

Style>

Script>

[CDATA[

importmx.events.CloseEvent;

importmx.rpc.events.FaultEvent;

importmx.rpc.events.ResultEvent;

importmx.controls.Alert;

privatestaticconstDEFAULT_CAMERA_WIDTH:

Number=320;

privatestaticconstDEFAULT_CAMERA_HEIGHT:

Number=240;

privatestaticconstDEFAULT_WEBSERVICE_URL:

String="http:

//localhost:

50338/WebSite1/WebService.asmx?

WSDL";//WebService地址

privatevarm_camera:

Camera;//定义一个摄像头

privatevarm_localVideo:

Video;//定义一个本地视频

privatevarm_pictureBitmapData:

BitmapData//定义视频截图

publicstaticvarMoveMouseblnMove:

Boolean=false;

publicstaticvarblnMove:

Boolean=false;

[Bindable]

privatevarm_pictureData:

String;

privatefunctioninitApp():

void

{

t_btn_Shooting.enabled=false;

t_ban_Save.enabled=false;

initMouseEvent();

initCamera();

}

//初始化摄像头

privatefunctioninitCamera():

void

{

m_camera=Camera.getCamera();

if(m_camera!

=null)

{

m_camera.addEventListener(StatusEvent.STATUS,__onCameraStatusHandler);

m_camera.setMode(DEFAULT_CAMERA_WIDTH,DEFAULT_CAMERA_HEIGHT,30);

m_localVideo=newVideo();

m_localVideo.width=DEFAULT_CAMERA_WIDTH;

m_localVideo.height=DEFAULT_CAMERA_HEIGHT;

m_localVideo.attachCamera(m_camera);

t_vd_Video.addChild(m_localVideo);

}

else

{

Alert.show("没有找到摄像头,是否重新查找。

","提示:

",Alert.OK|Alert.NO,this,__InitCamera);

return;

}

}

//拍照按钮事件,进行视频截图

privatefunctionSnapshotPicture():

void

{

varr:

Rectangle=newRectangle(this.t_cv_canvasResize.x,this.t_cv_canvasResize.y,this.t_cv_canvasResize.width,this.t_cv_canvasResize.height);

varm:

Matrix=newMatrix(1,0,0,1,-Math.ceil(r.x),-Math.ceil(r.y));

m_pictureBitmapData=newBitmapData(Math.floor(r.width),Math.floor(r.height));

m_pictureBitmapData.draw(t_vd_Video,m);

varm_pictureBitmap:

Bitmap=newBitmap(m_pictureBitmapData);

t_img_Picture.addChild(m_pictureBitmap);

t_panel_Picture.visible=true;

t_ban_Save.enabled=true;

}

//保存按钮事件,保存视频截图

//通过WebService保存

privatefunctionSavePicture():

void

{

m_pictureData="";

for(vari:

int=0;i

{

for(varj:

int=0;j

{

if(m_pictureData.length>0)

{

m_pictureData+=","+m_pictureBitmapData.getPixel32(i,j).toString();

}

else

{

m_pictureData=m_pictureBitmapData.getPixel32(i,j).toString();

}

}

}

t_ws_SavePicture.SavePicture.send();

}

//检测摄像头权限事件

privatefunction__onCameraStatusHandler(event:

StatusEvent):

void

{

if(!

m_camera.muted)

{

t_btn_Shooting.enabled=true;

}

else

{

Alert.show("无法链接到活动摄像头,是否重新检测。

","提示:

",Alert.OK|Alert.NO,this,__InitCamera);

}

m_camera.removeEventListener(StatusEvent.STATUS,__onCameraStatusHandler);

}

//当摄像头不存在,或连接不正常时重新获取

privatefunction__InitCamera(event:

CloseEvent):

void

{

if(event.detail==Alert.OK)

{

initApp();

}

}

//WebService保存图片成功事件

privatefunction__onSavePictureResult(event:

ResultEvent):

void

{

//trace(event.result);

if(event.result.toString()=="保存成功")

{

Alert.show(event.result.toString(),"提示",Alert.OK,this,__onAlertCloseHandler);

}

else

{

Alert.show(event.result.toString(),"提示",Alert.OK);

}

}

//连接WebService失败事件

privatefunction__onSavePictureFault(event:

FaultEvent):

void

{

//Alert.show(event.fault.toString(),"提示",Alert.OK);

Alert.show("连接WebService失败。

","提示",Alert.OK);

}

//保存图片成功后的弹出窗口确认事件

privatefunction__onAlertCloseHandler(event:

CloseEvent):

void

{

if(event.detail==Alert.OK)

{

//trace("转向页面");

}

}

//添加鼠标事件监听

publicfunctioninitMouseEvent():

void

{

this.t_cv_canvasResize.addEventListener(MouseEvent.MOUSE_DOWN,this.MoveMouseDownHandler);

this.t_cv_canvasResize.addEventListener(MouseEvent.MOUSE_UP,this.MoveMouseUpHandler);

this.t_cv_canvasParent.addEventListener(MouseEvent.ROLL_OUT,this.ParentMouseOverHandler);

this.t_cv_canvasParent.addEventListener(MouseEvent.MOUSE_UP,this.ParentMouseOverHandler);

return;

}//endfunction

publicfunctionMoveMouseDownHandler(event:

MouseEvent):

void

{

MoveMouseblnMove=true;

var_loc_2:

Rectangle=newRectangle();

_loc_2.width=this.t_vd_Video.width-this.t_cv_canvasResize.width;

_loc_2.height=this.t_vd_Video.height-this.t_cv_canvasResize.height;

this.t_cv_canvasResize.startDrag(false,_loc_2);

return;

}//endfunction

publicfunctionMoveMouseUpHandler(event:

MouseEvent):

void

{

this.t_cv_canvasResize.stopDrag();

MoveMouseblnMove=true;

return;

}//endfunction

publicfunctionParentMouseOverHandler(event:

MouseEvent):

void

{

this.t_cv_canvasResize.stopDrag();

blnMove=false;

MoveMouseblnMove=false;

return;

}//endfunction

]]>

Script>

WebServiceid="t_ws_SavePicture"showBusyCursor="true"wsdl="{DEFAULT_WEBSERVICE_URL}"useProxy="false"result="__onSavePictureResult(event)"fault="__onSavePictureFault(event)">

operationname="SavePicture">

request>

{this.t_cv_canvasResize.width}

{this.t_cv_canvasResize.height}

{m_pictureData}

request>

operation>

WebService>

Canvasheight="600"id="t_ca_Camera"width="800"x="10"y="10">

Panelid="t_panel_shoot_Picture"backgroundColor="#00ffffff"borderStyle="none"color="#00333333"cornerRadius="0"fontSize="12"height="325"layout="absolute"themeColor="16777215"title="视频拍照"width="340">

Canvasheight="240"id="t_cv_canvasParent"width="320">

VideoDisplayheight="240"id="t_vd_Video"width="320"x="0"y="0"/>

CanvasbackgroundAlpha="0.05"backgroundColor="#00333333"borderColor="9145227"borderStyle="solid"height="120"id="t_cv_canvasResize"visible="true"width="160"x="30"y="30"/>

Canvas>

ControlBarhorizontalAlign="right">

Buttonid="t_btn_Shooting"label="拍照"click="SnapshotPicture()"/>

ControlBar>

Panel>

Panelid="t_panel_Picture"x="360"y="10"width="180"height="200"layout="absolute"title="拍照图片"fontSize="12"visible="false">

Imageid="t_img_Picture"x="0"y="0"width="160"height="120"/>

ControlBarhorizontalAlign="right">

Buttonid="t_ban_Save"label="保存"click="SavePicture()"/>

ControlBar>

Panel>

Canvas>

Application>

WebService部分:

[WebMethod]

publicstringSavePicture(intpic_width,intpic_height,stringbitmap_data)

{

try

{

Bitmapm_pic=newBitmap(pic_width,pic_height);

string[]m_tempPics=bitmap_data.Split(',');

for(inti=0;i

{

for(intj=0;j

{

uintpic_argb=(uint)long.Parse(m_tempPics[i*pic_height+j]);

intpic_a=(int)(pic_argb>>24&0xFF);

intpic_r=(int)(pic_argb>>16&0xFF);

intpic_g=(int)(pic_argb>>8&0xFF);

intpic_b=(int)(pic_argb&0xFF);

m_pic.SetPixel(i,j,Color.FromArgb(pic_a,pic_r,pic_g,pic_b));

}

}

stringfilePath=AppDomain.CurrentDomain.SetupInformation.ApplicationBase+"Photo\\";

//判断路径是否存在,若不存在则创建路径

DirectoryInfoupDir=newDirectoryInfo(filePath);

if(!

upDir.Exists)

{

upDir.Create();

}

//生成随机文件名

RandomobjRand=newRandom();

DateTimedate=DateTime.Now;

//生成随机文件名

stringsaveName=date.Year.ToString()+date.Month.ToString()+date.Day.ToString()+date.Hour.ToString()+date.Minute.ToString()+date.Second.ToString()+Convert.ToString(objRand.Next(99)*97+100);

stringfileName=saveName+".jpg";

m_pic.Save(filePath+fileName,ImageFormat.Jpeg);

return"保存成功";

}

catch(Exceptionex)

{

returnex.Message;

}

}

flex摄像头拍照java上传到数据库

publicvoidprocessRequest(HttpServletRequestrequest,

HttpServletResponseresponse)throwsServletException,IOException{

response.setContentType("text/html;charset=UTF-8");

response.setHeader("Pragma","No-cache");

response.setHeader("Cache-Control","no-cache");

response.setDateHeader("Expires",0);

Stringbitmap_data=request.getParameter("bitmap_data");

intwidth=commons.getRequestInt(request.getParameter("width"),0);

intheight=commons.getRequestInt(request.getParameter("height"),0);

BufferedImageimg=newBufferedImage(width,height,

BufferedImage.TYPE_INT_RGB);

try{

intw=width;

inth=height;

int[]pixels=newint[w*h];

String[]m_tempPics=bitmap_data.split(",");

for(intx=0;x

for(inty=0;y

Longpic_argb=Long.parseLong(m_tempPics[x*h+y]);

inta=(int)(pic_argb>>24&0xFF);

intr=(int)(pic_argb>>16&0xFF);//右移16位,取后8位;

intg=(int)(pic_argb>>8&0xFF);

intb=(int)(pic_argb&0xFF);

pixels[y*w+x]=newColor(r,g,b,a).getRGB();

}

}

img.setRGB(0,0,w,h,pixels,0,w);

img.flush();

ByteArrayOutputStreambao=newByteArrayOutputStream();

ImageIO.write(img,"jpg",bao);

byte[]data=bao.toByteArray();

Personimageuser=newPersonimage();

user.setFileContent(data);

PersonimageDAOhm=newPersonimageDAO();

hm.save(user);

PersonrelationDAOprm=newPersonrelationDAO();

Personrelationpr=prm.findById(newLong(personRelationId));

pr.setPersonimageid(user.getId());

pr.setImageflag("1");

prm.update(pr);

str.append("保存成功");

}catch(Exceptione){

e.printStackTrace();

str.append("保存失败");

}

response.setContentType("text/xml");

response.getWriter().write(str.toString());

}

flex视频录制

importmx.events.SliderEvent;

importmx.events.VideoEvent;

importmx.collections.ArrayCollect

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1