·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

[AS3]as3下JPEG Encoder的应用之保存图片的源代码示例

时间:2014-01-04 16:56adobe.com
在我们开始之前,请确保你拥有了ActionScript. 3 Core Library。这个类库包含了一些很有用的类,用于简化我们的开发工作,比如MD5加密,日期格式化,图片编码等等。一旦你拥有这个类库,只需将它拖放到你准备好的类文件夹中。现在我们可以引入JPGEncoder。

在我们开始之前,请确保你拥有了ActionScript. 3 Core Library。这个类库包含了一些很有用的类,用于简化我们的开发工作,比如MD5加密,日期格式化,图片编码等等。一旦你拥有这个类库,只需将它拖放到你准备好的类文件夹中。现在我们可以引入JPGEncoder。

Actionscript.

  1. import com.adobe.images.JPGEncoder; 

编码电影剪辑

在这个示例中,我们假设要被编码的电影剪辑被命名为sketch_mc。在我们使用JPGEncoder之前,这个电影剪辑需要转换为Bitmap 格式。要做到这一点,我们需要使用BitmapData类。这个类的构造器需要接受2个参数:宽度和高度。如果我们希望最后的JPEG图像的大小与 sketch_mc的大小一致,我们可以使用sketch_mc的宽度和高度属性。然后我们把sketch_mc作为一个参数,使用draw函数绘制 Bitmap。

Actionscript.

  1. import com.adobe.images.JPGEncoder; 
  1. var jpgSource:BitmapData = new BitmapData (sketch_mc.width, sketch_mc.height); 
  2. jpgSource.draw(sketch_mc); 

现 在sketch_mc已经是Bitmap的数据来源,我们可以使用JPGEncoder了。在创建这个类的实例的时候,你可以通过传递一个从1到 100的数字来设置压缩比。然后为了创建JPEG图像,我们需要调用encode函数,并且把我们的Bitmap数据作为传递参数。encode函数会以 ByteArray的形式返回JPEG图像,在AS3中编写这些代码是非常容易的。

Actionscript.

  1. import com.adobe.images.JPGEncoder; 
  2. var jpgSource:BitmapData = new BitmapData (sketch_mc.width, sketch_mc.height); 
  3. jpgSource.draw(sketch_mc); 
  4. var jpgEncoder:JPGEncoder = new JPGEncoder(85); 
  5. var jpgStream:ByteArray = jpgEncoder.encode(jpgSource); 

从FlashPlayer中保存图像到桌面

AS3 已经完成了将电影剪辑编码为JPEG的工作,但是我们还需要一点小小的改 动,让它可以真实的下载。要实现这一步,我们需要使用 URLRequest类发布ByteArray数据到一个动态网页中。既然我们要发送二进制数据,就需要设置内容类型为 “application/octet-stream”。当然我们下载文件的时候需要一个文件名称,所以我们为动态网页传递了一个字符串形式的参数。

Actionscript.

  1. import com.adobe.images.JPGEncoder; 
  2. var jpgSource:BitmapData = new BitmapData (sketch_mc.width, sketch_mc.height); 
  3. jpgSource.draw(sketch_mc); 
  4. var jpgEncoder:JPGEncoder = new JPGEncoder(85); 
  5. var jpgStream:ByteArray = jpgEncoder.encode(jpgSource); 
  6. var header:URLRequestHeader = new URLRequestHeader(”Content-type”, “application/octet-stream”); 
  7. var jpgURLRequest:URLRequest = new URLRequest(”jpg_encoder_download.php?name=sketch.jpg”); 
  8. jpgURLRequest.requestHeaders.push(header); 
  9. jpgURLRequest.method = URLRequestMethod.POST; 
  10. jpgURLRequest.data = jpgStream
  11. navigateToURL(jpgURLRequest, “_blank”); 

下面是用于保存JPEG图片的PHP代码。这里我使用了PHP技术,实际上你可以使用任何其它的动态语言。

  1. if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) 
  2. // 酷播CuPlayer.com/ get bytearray 
  3. $jpg = $GLOBALS["HTTP_RAW_POST_DATA"]; 
  4. // 酷播CuPlayer.com/  add headers for download dialog-box 
  5. header(’Content-Type: image/jpeg’); 
  6. header(”Content-Disposition: attachment; filename=”.$_GET[’name’]); 
  7. echo $jpg; 
  8. }

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器