flex save chart

本文介绍了一种使用Flex进行屏幕截图的方法,并将其转换为Base64编码字符串以便于在网络上传输。此外,还提供了如何利用Perl CGI脚本解析Base64编码字符串并返回图像数据的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

flex:

chartPanel是要save的元件

<mx:Button label="Save Image" click="displayChart(chartPanel)"/>

 

public function takeSnapshot(comp:DisplayObject):void
        {
           //for flex_2 

            var bd:BitmapData = new BitmapData(comp.width,comp.height);
            bd.draw(reportTile);
            var ba:ByteArray = PNGEnc.encode(bd);
            var b64Encode:Base64Encoder = new Base64Encoder();
            b64Encode.encodeBytes(ba);

            var b64String = b64Encode.flush();

 

           //for flex_3

            var snapshot:ImageSnapshot = ImageSnapshot.captureImage(comp);             
            var b64String:String = ImageSnapshot.encodeImageAsBase64(snapshot);
           //for firefox
            //var u:URLRequest = new URLRequest("data:image/png;base64,"+b64String );
           //for IE & firefox

            var u:URLRequest = new URLRequest(urlString +"/displaychart.cgi");
            var v:URLVariables = new URLVariables();
            v.imageString = b64String ;
            u.data = v;
            u.method = URLRequestMethod.POST;
            navigateToURL(u,"_blank");
        }

 

 displaychart.cgi

 

#!c:/perl/bin/perl -w
use strict;
use Net::LDAP;
use DBI;
use CGI qw/:standard/;
use MIME::Base64;

#print "Content-type: application/octet-stream/n";
#print "Content-Disposition: attachment; filename=chart.png/n/n";
print "Content-type: image/png/n/n";

print decode_base64(param('imageString'));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值