`
maloveqiao
  • 浏览: 102718 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

将视频文件等分切割BitmapData.draw使用

    博客分类:
  • as3
 
阅读更多
package {
import com.viewtoo.common.view.CommonSprite;
import flash.events.Event;
import fl.video.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
/**
* ...
* @author Lancelot
*/
public class VideoGridView extends Sprite {

   private var flvPlayer:FLVPlayback = null;
   private var len:Number = 3;
   private var _w:Number;
   private var _h:Number;
   //
   private var runObject:Array = [];
   public function VideoGridView() {
    super();
   }
 
   protected override function onAdded(evt:Event):void {
    super.onAdded(evt);
    flvPlayer = new FLVPlayback();
    flvPlayer.bufferTime = 3;
    flvPlayer.load("../mvGame/1.flv");
    flvPlayer.autoPlay = true;
    flvPlayer.addEventListener(MetadataEvent.METADATA_RECEIVED, onMetaData);
   }

   private function onMetaData(evt:MetadataEvent):void {
    flvPlayer.width = evt.info.width;
    flvPlayer.height = evt.info.height;
    _w = flvPlayer.width / len;
    _h = flvPlayer.height / len;
    flvPlayer.visible = false;
    addChild(flvPlayer);

    this.addEventListener(Event.ENTER_FRAME, onVideoEnterFrame);
    drawVideo();
   }
 
   // 开始照相
   private function onVideoEnterFrame(evt:Event):void {
    var l:Number = runObject.length;
    for (var i:Number = 0; i < l; i++) {
     var mybmp:BitmapData = runObject[i].mybmpdata;
     var matrix:Matrix = runObject[i].matrix;
     var rect:Rectangle = runObject[i].ract;
     // 绘制9个区域
     mybmp.draw(flvPlayer, matrix, null, null, rect);
    }
   }
 
   private function onImageMouseDownEvent(evt:MouseEvent):void {
    var maskView:Sprite = Sprite(evt.currentTarget);
    maskView.startDrag(false, null);
    maskView.addEventListener(MouseEvent.MOUSE_UP, onImageMouseUpEvent);
   }
 
   private function onImageMouseUpEvent(evt:MouseEvent):void {
    var maskView:Sprite = Sprite(evt.currentTarget);
    maskView.removeEventListener(MouseEvent.MOUSE_UP, onImageMouseUpEvent);
    maskView.stopDrag();
        }
 
   // 快照
   private function drawVideo():void {
    for (var x:Number = 0; x < len; x++) {
     for (var y:Number = 0; y < len; y++) {
      var obj:Object = new Object();
      var rect:Rectangle = new Rectangle(_w * x, _h * y, _w, _h);
      var matrix:Matrix = new Matrix(1, 0, 0, 1, -rect.x, -rect.y);
      // 避免误差
      rect.width += 1;
      var mybmp:BitmapData = new BitmapData(rect.width, rect.height);
      mybmp.draw(flvPlayer, matrix, null, null, rect);
      var sp:Sprite = new Sprite();
      sp.x = _w * x;
      sp.y = _h * y;
      sp.addEventListener(MouseEvent.MOUSE_DOWN, onImageMouseDownEvent);
      var bit:Bitmap = new Bitmap(mybmp);
      sp.addChild(bit);
      addChild(sp);
    
      runObject.push( { mybmpdata:mybmp, matrix:matrix, rect:rect } );
     }
    }
   }
}
}
分享到:
评论

相关推荐

    BitmapData.draw方法

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

    delphi 找图找色 BitmapData.pas

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

    BitmapData.pas和kbKernel.pas

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

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

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

    BitmapData.zip

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

    [转] BitmapData 基础部分2

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

    ActionScript 3 BitmapData 的例子

    bitmapData.draw(displayObject); ``` 4. 读取和修改像素 BitmapData提供了一些方法来读取和修改单个像素,如`getPixel()`和`setPixel()`,以及更高效地处理多像素的`getPixels()`和`setPixels()`。例如: ```...

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

    在本文中,我们将深入探讨如何使用AS3(ActionScript 3)进行等比切割图片,并实现一键保存和自动命名的功能。ActionScript 3是Adobe Flash Professional和Flash Player中用于创建交互式内容的主要编程语言,它提供...

    Delphi图片识别实例

    - `BitmapData.dcu`和`BitmapData.pas`是单元文件,通常包含处理图像数据的类或函数。`DCU`文件是编译后的单元,而`PAS`文件是源代码。 - `Unit1.dcu`, `Unit1.dfm`和`Unit1.pas`代表一个名为Unit1的Delphi组件,...

    flashcam资源

    捕获到的视频帧可以通过`BitmapData.draw()`方法绘制到`BitmapData`对象上,然后进一步处理或保存。例如,可以创建一个`BitmapData`实例,绘制视频帧,并将其转换为JPEG: ```actionscript var bitmapData:...

    Flash as3基于位图的碰撞检测实例

    这可以通过`BitmapData.draw()`方法实现,该方法接受一个DisplayObject作为参数,生成对应的BitmapData。 ```actionscript var bitmapData:BitmapData = new BitmapData(displayObject.width, displayObject.height...

    as2.0amlabfire.zip_BitmapData_True Blue

    as2.0 模拟火焰 import flash.display.* import flash.filters.* import flash.geom.* import de.popforge.bitmap.Shape ...blueSpot.draw( blueSpotClip, new Matrix() ) blueSpotClip.removeMovieClip()

    FLASH高级碰撞检测

    本文将深入探讨一种用于不规则图形之间的高级碰撞检测方法——**BitmapData.hitTest**。这种方法能够有效地检测两个不规则图形之间的碰撞,并且支持透明度,因此在实际应用中具有很大的灵活性。 #### 二、基础知识...

    flash AS3实现截屏不能少的库。这个库需要与aether.swc一起使用.zip

    `BitmapData.draw()`方法可以将舞台或者任何显示对象绘制到BitmapData对象上,为截屏提供了基础。 使用这个库的步骤通常如下: 1. 引入库:首先,需要在你的AS3项目中导入所需的库,确保`as3corelib.swc`已经添加...

    t放大镜 淘宝

    3. **使用BitmapData.draw**: 在鼠标移动事件的回调函数中,使用`BitmapData.draw`方法将当前鼠标下的图片区域绘制到一个新的`BitmapData`对象上。此方法需要传入要绘制的对象(这里是原始`Bitmap`对象)以及可选的...

    flash as3 截图,拍照

    在截图场景中,我们需要用到`BitmapData.draw()`方法,将舞台内容绘制到位图数据上。 4. **Bitmap类** `Bitmap`类是AS3的显示对象,它用于显示`BitmapData`对象。当我们将舞台内容转换为`BitmapData`后,通常会...

    Flex 图片 保存

    bitmapData.draw(myDisplayObject); ``` 这将创建一个与myDisplayObject相同尺寸的BitmapData实例,包含该组件的视觉内容。 3. **Matrix变换**:在上述截图过程中,第二个参数Matrix允许你对图片应用各种几何...

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

    - 使用`BitmapData.draw`方法将`Shape`对象绘制到`BitmapData`对象上。 3. **执行碰撞检测**: - 调用`BitmapData.hitTest`方法进行碰撞检测。 #### 五、性能考虑 1. **优化策略**: - 对于大量的对象,可以采用...

    flash-as图像截取

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

    flex 上传图像

    bitmapData.draw(image); ``` 这里的`image`可以是DisplayObject实例,如Loader或Sprite,它包含你要上传的图像。 2. 将BitmapData编码为ByteArray:使用BitmapData的`encode`方法将BitmapData对象转换为JPEG或PNG...

Global site tag (gtag.js) - Google Analytics