我很难找到任何可以在运行时保存图像的ActionScript。
这是一个Flash应用程序,用户可以在其中设计一些内容,然后将其发送给我(以便发布)(我认为最好的方法是使用某种ActionScript拍摄完成设计的JPEG图片然后将其保存到我的Web服务器)。我四处寻找并找到了一些例子,但它们似乎都没有用。
对此有任何启发将不胜感激!
亚伦
答案 0 :(得分:0)
这是我在开展类似项目时发现的最简单的例子:
需要安装as3corelib
https://github.com/mikechambers/as3corelib
保存大型jpgs的问题是编码器的同步特性会在运行时冻结整个应用程序,因此它被前面评论中提到的异步库所取代
import com.adobe.images.JPGEncoder;
var jpgSource:BitmapData = new BitmapData (sketch_mc.width, sketch_mc.height);
jpgSource.draw(sketch_mc);
var jpgEncoder:JPGEncoder = new JPGEncoder(85);
var jpgStream:ByteArray = jpgEncoder.encode(jpgSource);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var jpgURLRequest:URLRequest = new URLRequest("jpg_encoder_download.php?name=sketch.jpg");
jpgURLRequest.requestHeaders.push(header);
jpgURLRequest.method = URLRequestMethod.POST;
jpgURLRequest.data = jpgStream;
navigateToURL(jpgURLRequest, "_blank");
PHP STUFF - 将其写入屏幕,但它可以轻松保存文件。
if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
// get bytearray
$jpg = $GLOBALS["HTTP_RAW_POST_DATA"];
// add headers for download dialog-box
header('Content-Type: image/jpeg');
header("Content-Disposition: attachment; filename=".$_GET['name']);
echo $jpg;
}