won*_*ana 1 flash jpeg save actionscript-3
有没有办法让Flash AS3拍摄帧的快照,然后将其保存为jpeg而不使用类
M. *_*ing 10
当然......尝试在谷歌搜索......有很多方法.这是假设您可以使用标准闪存类.如果你的字面意思是没有课程,那么祝你好运.
这是一种做法.闪光的PHP上传
基本上关键点是你创建了一个JPEG编码器,它将你的图像编码为JPEG(如果你想也可以做一个PNG),如下所示:
var jpgEncoder:JPGEncoder;
jpgEncoder = new JPGEncoder(90);
Run Code Online (Sandbox Code Playgroud)
接下来,通过首先将其数据绘制到位图,然后生成以下内容来编码阶段:
var bitmapData:BitmapData = new BitmapData(stage.width, stage.height);
bitmapData.draw(stage, new Matrix());
img = jpgEncoder.encode(bitmapData);
Run Code Online (Sandbox Code Playgroud)
现在,根据您使用的闪存,您可以执行以下操作来提示用户保存:
var file:FileReference = new FileReference();
file.save(img, "filename.jpg");
Run Code Online (Sandbox Code Playgroud)
或者,如果要将其保存到服务器,可以执行以下操作:
var sendHeader:URLRequestHeader = new URLRequestHeader("Content-type","application/octet-stream");
var sendReq:URLRequest = new URLRequest("path-to-php.php");
sendReq.requestHeaders.push(sendHeader);
sendReq.method = URLRequestMethod.POST;
sendReq.data = img;
var sendLoader:URLLoader;
sendLoader = new URLLoader();
sendLoader.addEventListener(Event.COMPLETE, imageSentHandler);
sendLoader.load(sendReq);
Run Code Online (Sandbox Code Playgroud)
然后你需要一个包含以下内容的PHP文件:
<?php
if ( isset ( $GLOBALS["HTTP_RAW_POST_DATA"] )) {
$filename = "filename.jpg";
$fp = fopen( $filename,"wb");
fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
fclose( $fp );
echo "filename=".$filename."&base=".$_SERVER["HTTP_HOST"].dirname($_SERVER["PHP_SELF"]);
}
?>
Run Code Online (Sandbox Code Playgroud)
请注意,我没有测试此代码的错误,但一般的想法是正确的,您应该能够使用它并进行程序所需的更改.
| 归档时间: |
|
| 查看次数: |
8422 次 |
| 最近记录: |