`
steely816
  • 浏览: 129397 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

AS3图像复制BitmapData.copyPixels()

阅读更多

//舞台属性设置

stage.align=StageAlign.TOP_LEFT;
stage.scaleMode=StageScaleMode.NO_SCALE;
var selectBox:Sprite = new Sprite(); //生成选择框
var recordX:Number; //记录初始x坐标
var recordY:Number; //记录初始y坐标
var endX:Number; //记录结束x坐标
var endY:Number; //记录结束y坐标
var moveX:Number; //记录移动之后x坐标
var moveY:Number; //记录移动之后y坐标
var myImage:Bitmap; //显示图片的容器
var dragFlag:Boolean= false ; //用于判断选择框是否正在拖动
var clickPoint:Point; //记录开始的选择框对应的舞台坐标点
var endPoint:Point; //记录选择框绘制结束后选择框对应的舞台坐标点
initStage();
function initStage() {
     myImage= new Bitmap();
     addChild(myImage);
     bg.addEventListener(MouseEvent.MOUSE_DOWN,startDraw); //绘制选择框
     selectBox.addEventListener(MouseEvent.MOUSE_DOWN,dragSelectBox); //拖动选择框
     selectBox.addEventListener(MouseEvent.MOUSE_UP,stopDragSelectBox); //停止拖动选择框
}
function dragSelectBox(_evt:MouseEvent): void {
     _evt.currentTarget.startDrag();
     dragFlag= true ;
}
function stopDragSelectBox(_evt:MouseEvent) {
     if (dragFlag== true ) {
         createJPG(mc_image,selectBox,Math.min(selectBox.localToGlobal(clickPoint).x,selectBox.localToGlobal(endPoint).x),Math.min(selectBox.localToGlobal(clickPoint).y,selectBox.localToGlobal(endPoint).y));
         selectBox.stopDrag();
         dragFlag = false ;
     }
}
//开始绘制
function startDraw(_evt:MouseEvent): void {
     stage.addEventListener(Event.ENTER_FRAME,drawSelectBox);
     recordX = mouseX;
     recordY = mouseY;
     clickPoint = new Point(recordX,recordY);
}
//绘制选择框
function drawSelectBox(_evt:Event): void {
     selectBox.x=selectBox.y=0; //恢复坐标到原点
     selectBox.graphics.clear();
     selectBox.graphics.lineStyle(1,0x000000);
     selectBox.graphics.beginFill(0xffffff,0.7);
     selectBox.graphics.drawRect(recordX,recordY,mouseX-recordX,mouseY-recordY);
     selectBox.graphics.endFill();
     addChild(selectBox);
     stage.addEventListener(MouseEvent.MOUSE_UP,endDraw); // 鼠标在舞台上放开时的事件
}
//绘制结束
function endDraw(_evt:MouseEvent): void {
     stage.removeEventListener(Event.ENTER_FRAME,drawSelectBox);
     selectBox.stopDrag();
     dragFlag = false ;
     endX = mouseX;
     endY = mouseY;
     endPoint = new Point(endX,endY);
     createJPG(mc_image,selectBox,Math.min(recordX,endX),Math.min(recordY,endY));
     stage.removeEventListener(MouseEvent.MOUSE_UP,endDraw); //鼠标在舞台上放开时的事件
}
function createJPG(m:MovieClip,box:Sprite,originX:Number,originY:Number) {
     removeChild(myImage);
     var jpgSource:BitmapData= new BitmapData (m.width, m.height); //先把背景图转换成BitmapData
     jpgSource.draw(m);
     var rect:Rectangle = new Rectangle(originX,originY,box.width,box.height); //设置复制的区域和大小
     var pt:Point = new Point(0, 0); //复制到的对象的起始点
     var jpgOut:BitmapData= new BitmapData(box.width, box.height);
     jpgOut.copyPixels(jpgSource, rect, pt); //复制区域内容
     myImage = new Bitmap(jpgOut);
     addChild(myImage);

在Flash上点击左键拖动可以复制选中的图片内容到左上角,这个东西的具体用处,大概就是图片信息复制吧。

分享到:
评论

相关推荐

    delphi 找图找色 BitmapData.pas

    delphi 找图找色 BitmapData.pas 使用方法请到原作者yeye55的blog查看, http://yeye55blog.blog.163.com/blog/static/19724102120111043252016/

    BitmapData.draw方法

    BitmapData.draw方法是ActionScript 3.0中的一个重要功能,主要用在Adobe Flash环境中处理位图数据。这个方法允许开发者将一个显示对象(如Sprite、MovieClip或Bitmap)的可视内容复制到BitmapData对象上,从而实现...

    BitmapData.pas和kbKernel.pas

    BitmapData.pas 和 kbKernel.pas 这两个文件在IT领域中主要涉及到图像处理和自动化操作,特别是游戏或图形应用中的找图找色功能。在本文中,我们将深入探讨这两个关键概念及其在实际编程中的应用。 首先,...

    王者找图对比程序.rar_BitmapData.pas_delphi 找图_对比找图_王找找图_王者找图对比程序

    王者找图对比程序,delphi制作,设定一个图,找另一个图上是否有这个图!

    [转] BitmapData 基础部分2

    - BitmapDataExample3.as和BitmapDataExample3.swf:可能演示了使用BitmapData.draw()方法绘制DisplayObject,并可能展示了不同的绘制选项,如旋转、缩放或着色。 - BitmapDataExample5.as和BitmapDataExample5.swf...

    BitmapData.zip

    BitmapData.zip 文件是一个包含 Delphi 开发中使用的 BitmapData 单元的压缩包。这个单元主要是为了实现图像处理和颜色查找功能,对于 Delphi 开发者来说,它提供了一个高效且方便的工具来搜索和操作图像数据。让...

    ActionScript 3 BitmapData 的例子

    bitmapData.applyFilter(bitmapData, new Rectangle(0, 0, bitmapData.width, bitmapData.height), new Point(), filter); ``` 6. 图像合并与混合模式 利用`merge()`方法,可以将两个BitmapData对象合并,同时可以...

    Flex RIA AS3网页游戏 BitmapData CopyPixel用法.rar

    在游戏开发中,BitmapData类是AS3中的一个关键组件,用于处理像素级别的图像数据。这个压缩包"Flex RIA AS3网页游戏 BitmapData CopyPixel用法.rar"显然包含了关于如何在AS3中使用BitmapData的CopyPixel方法来创建或...

    as3 等比切割图片,一键切割图片保存+自动命名图片

    在AS3中,我们可以利用BitmapData类来处理图像数据。BitmapData对象可以代表位图图像,允许我们进行读取、写入、操作和绘制像素。以下是实现等比切割的基本步骤: 1. **加载图片**:使用Loader类加载图片资源。你...

    AS3实现对图片进行任意形状裁剪的例子

    croppedBitmapData.copyPixels(bitmapData, bitmapData.rect, new Point(), maskData); croppedBitmapData.unlock(); ``` 3. **显示结果**: 最后,我们可以将裁剪后的BitmapData对象转换为Bitmap对象并添加到...

    flash-as图像截取

    这段代码的核心在于`captureImage()`函数,它使用`BitmapData.draw()`方法捕获选定区域的图像,并将其设置到剪贴板上。用户可以通过调整舞台上的矩形来改变截取的区域,当释放鼠标时,图像会被截取并复制到剪贴板。 ...

    as3corelib-.92.11.rar_as 3 corelib_as3_as3corelib_as3corelib API

    1. 图像处理:AS3CoreLib包含了一个名为`Flash.display.BitmapData`的扩展,使得在AS3中处理图像变得更加便捷。你可以使用这个库来执行像素级别的操作,如颜色转换、滤镜应用、图像缩放和旋转。这对于游戏开发、图形...

    flash游戏开发第一张 高级碰撞检测

    - 使用`BitmapData.fillRect`、`BitmapData.copyPixels`等方法来更新位图数据。 #### 六、结论 通过本文的学习,我们了解到BitmapData.hitTest作为一种高级碰撞检测方法,在处理不规则图形之间的碰撞检测时具有...

    as3实现图片lomo效果

    在 AS3 中,可以使用 `BlendMode.INVERT` 或者通过 `BitmapData.colorTransform` 方法来实现。 ```actionscript private function processInvert():void { bitmapdata.colorTransform(new Rectangle(0, 0, ...

    AS3 加载图片圆滑处理

    在ActionScript 3 (AS3) 中,加载图片并实现圆滑处理是一个常见的需求,尤其在创建用户界面或游戏时。AS3相比AS2提供了更强大的性能和更现代的编程模型,因此使用AS3来解决这个问题是明智的选择。本文将详细讲解如何...

    Visual C#图像处理程序设计实例

    byte[] pixels = new byte[bitmapData.Stride * bitmapData.Height]; Marshal.Copy(bitmapData.Scan0, pixels, 0, pixels.Length); // 遍历并修改像素 for (int y = 0; y < bitmapData.Height; y++) { for (int x ...

    C#图像处理基础.doc

    同时,我们还需要使用指针来获得图像的内部数据,因为GDI+中的BitmapData类不提供对图像内部数据的直接访问的方法。 在实现图像处理程序时,我们需要重载窗体的OnPaint()事件函数,以便在程序的主窗体上绘制图像。...

    as3中设置图形的颜色

    在ActionScript 3 (AS3)中,图形的创建和颜色处理是常见的任务,尤其在开发Flash内容或者Flex应用程序时。本篇文章将深入探讨如何在AS3中设置图形的颜色,并着重讲解如何通过`setPixel()`函数来改变位图的颜色。 ...

    flash as3 截图,拍照

    在Flash AS3中,截取舞台画面,也称为屏幕快照或截图,是开发者经常需要进行的操作,尤其在游戏开发、交互式应用或者演示中。本文将深入探讨如何使用ActionScript 3.0来实现这一功能,并提供相关知识点。 1. **...

Global site tag (gtag.js) - Google Analytics