Flex & Java Servlet 实现简单图片编辑
来源:互联网 发布:淘宝举报卖家店铺 编辑:程序博客网 时间:2024/05/18 20:08
flex有一个功能可以将组建转换成Bitmap这样只要拿到编辑过的图片字节码一切就容易了。这个功能大概有四步。
1.加载要编辑的图片
加载图片可以使用 BitImage类
因为只是演示一下就直接将将BitImage写死了。 代码:
- <s:group id="myPanel" x="0" y="38">
- <s:bitmapimage source="@Embed('mv.jpg')" width="400" height="272" x="0" y="-1">
- <s:textarea x="269" y="21" width="112" height="88" contentbackgroundalpha="0.0" borderalpha="0.39">
- </s:textarea></s:bitmapimage></s:group>
2.鼠标的划线
鼠标划线主要就是监听鼠标的事件,思路就是 在鼠标按下时图片处于可以编辑状态,拖动鼠标时划线,松开鼠标时划线结束
- private var mX:Number;
- private var mY:Number;
- private var IsDown:Boolean=false;
- private var path:String=new String();
- // 初始化函数
- private function init():void{
- myPanel.addEventListener(MouseEvent.MOUSE_DOWN,downHandler);
- myPanel.addEventListener(MouseEvent.MOUSE_MOVE,moveHandler);
- myPanel.addEventListener(MouseEvent.MOUSE_UP,upHandler);
- myPanel.graphics.lineStyle(2,0x0000ff,1);
- myPanel.graphics.moveTo(10,10);
- myPanel.graphics.curveTo(175,125,200,200);
- }
- private function downHandler(e:MouseEvent):void{
- IsDown=true;
- mX=myPanel.mouseX;
- mY=myPanel.mouseY;
- }
- private function upHandler(e:MouseEvent):void{
- IsDown=false;
- trace(path);
- }
- private function moveHandler(e:MouseEvent):void{
- if(IsDown){
- var x:Number = myPanel.mouseX;
- var y:Number = myPanel.mouseY;
- myPanel.graphics.lineStyle(_lineSize,_lineColor,1);
- myPanel.graphics.moveTo(mX,mY);
- myPanel.graphics.lineTo(x,y);
- mX=x;
- mY=y;
- }
- }
3.得到编辑后字节码
- var png:PNGEncoder=new PNGEncoder();
- var srcBit:BitmapData = new BitmapData(myPanel.width,myPanel.height);
- srcBit.draw(myPanel);
- var data:ByteArray=srcBit.getPixels(new Rectangle(0,0,myPanel.width,myPanel.height));
- var image:ByteArray=png.encodeByteArray(data,myPanel.width,myPanel.height);
上面代码得到png格式的图片编码
4.上传字节码到服务器
- var hander:URLRequestHeader=new URLRequestHeader("Content-type","application/octet-stream");
- var request:URLRequest =new URLRequest("http://iyang/FlexUpload/DoServletUpload");
- request.requestHeaders.push(hander);
- request.method="POST";
- request.data=image;
- var load:URLLoader=new URLLoader(request);
- load.addEventListener(Event.COMPLETE,function(evt){
- Alert.show("保存成功");
- });
servlet使用request.getInputStream();得到字节流。
上面的功能经实现了所需要的功能
flex4 通过 FileReference可以实现将图片保存到本地,直接用得到的image的ByteArray就可以了
var file:FileReference=new FileReference();
file.save(image,”edit.png”);
这样就会弹出保存图片的对话框
- Flex & Java Servlet 实现简单图片编辑
- java实现方便、快捷的图片编辑
- flex与servlet简单交互
- java servlet 实现图片验证码
- Flex+Java Servlet实现文件上传(转)
- 实现图片Bitmap简单编辑的三种方式
- java 8 实现简单的Servlet路由
- Flex + Servlet 实现断点上传
- 简单实现对flex dataGrid一列在某些行可编辑,在另一些行不可编辑
- Android经服务器授权登陆并将图片Post到自己服务器的简单小Demo(Java+servlet实现)
- Java Flex Servlet交互通信
- ArcGIS Server flex实现在线数据编辑
- Flex与java通过BlazeDS实现通信(简单Demo)
- Flex与java通过BlazeDS实现通信(简单Demo)
- Android、IOS 图片上传接口(Java实现Servlet)。
- Servlet技术实现动态图片验证码(Java)
- Android、IOS 图片上传接口(Java实现Servlet)
- Java Web 使用Servlet 实现上传图片功能!
- 思考ifttt.com - 当人人可以对整个互联网编程
- spring 验证框架
- XCode 4 使用 floatValue
- 产品不要被技术绑架的10件事
- 光脚丫学ASP.NET MVC(0003):全局URL路由默认值说明
- Flex & Java Servlet 实现简单图片编辑
- Exception in thread "main" java.lang.NoClassDefFoundError错误信息
- 图片编辑网站
- 考研数学145分之路:暑期精读大学数学课本
- FSAA (FullSceneAnti-aliasing)全屏抗锯齿技术
- 关于ashx文件的点点滴滴
- C# 同时保持两个窗体激活
- 给央视挑错
- perl 操作xml实例