Mar 18

下面的例子展示了如何在Flex 3中,通过设置ImageSnapshot类中的encoder参数和调用静态captureImage()事件,捕获JPEG或PNG形式图片。

下面是具体的源代码:


Download: main.mxml
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
  3.         layout="vertical"
  4.         verticalAlign="middle"
  5.         backgroundColor="white">
  6.  
  7.     <mx:Script>
  8.         <![CDATA[
  9.             import mx.graphics.ImageSnapshot;
  10.             import mx.graphics.codec.*;
  11.  
  12.             private const jpgEnc:JPEGEncoder = new JPEGEncoder();
  13.             private const pngEnc:PNGEncoder = new PNGEncoder();
  14.  
  15.             private function captureImg(imgEnc:IImageEncoder):void {
  16.                 var ohSnap:ImageSnapshot;
  17.                 ohSnap = ImageSnapshot.captureImage(img, 0, imgEnc);
  18.                 textArea.text = ImageSnapshot.encodeImageAsBase64(ohSnap);
  19.             }
  20.         ]]>
  21.     </mx:Script>
  22.  
  23.     <mx:ApplicationControlBar dock="true">
  24.         <mx:ToggleButtonBar id="toggleButtonBar"
  25.                 itemClick="captureImg(event.item.data);">
  26.             <mx:dataProvider>
  27.                 <mx:Array>
  28.                     <mx:Object label="Capture as JPEG" data="{jpgEnc}" />
  29.                     <mx:Object label="Capture as PNG" data="{pngEnc}" />
  30.                 </mx:Array>
  31.             </mx:dataProvider>
  32.         </mx:ToggleButtonBar>
  33.     </mx:ApplicationControlBar>
  34.  
  35.     <mx:Image id="img"
  36.             source="@Embed('images/flex_logo.jpg')" />
  37.  
  38.     <mx:TextArea id="textArea"
  39.             editable="false"
  40.             width="320"
  41.             height="160" />
  42.  
  43. </mx:Application>

原文作者:Peter deHaan 翻译:minidxer

written by Minidxer  |  tags: , , , , , , ,

Related Post

One Response to “Flex 3中利用ImageSnapshot类捕获JPEG或PNG形式图片的例子”

Trackbacks

Leave a Reply