Flex 获得png透明截图的问题和解决方法_Flex

代码大概这样:

复制代码 代码如下:

// displaObject 为需要截图对象
var pngEncoder:PngEncoder = new PngEncoder();
var bitMapData:BitmpaData = new BitmpaData(displaObject.widht,displaObject.height);
bitMapData.draw(displaObject);
var imageByteArray:ByteArray = pngEncoder.encode(bitMapData);
.....
send the imageByteArray to server side scripts .......

但是得到结果并不透明,于是怀疑encode方法没有包含Alpha通道。改为第二种方法:

复制代码 代码如下:

var bytes:ByteArray = bitmapData.getPixels(new Rectangle(0,0,bitmapData.width,bitmapData.height));
var imageByteArray2:ByteArray = pngEncoder.encodeByteArray(bytes,bitmapData.width,bitmapData.height,true);

结果仍然没有透明度信息!
于是仔细读了手册每一项找到如下一段话:
transparent:Boolean (default = true) — 指定位图图像是否支持每个像素具有不同的透明度。默认值为 true(透明)。若要创建完全透明的位图,请将 transparent 参数的值设置为 true,将 fillColor 参数的值设置为 0x00000000(或设置为 0)。将 transparent 属性设置为 false 可以略微提升呈现性能。
也就是说,transparent = true 还不行,fillColor还必须设置为 0x000000!!

复制代码 代码如下:

var bitMapData:BitmpaData = new BitmpaData(displaObject.widht,displaObject.height,true,0x000000);

其实这样设置挺说不通的,但是以后碰到问题还是要多看看手册了!

时间: 2024-10-16 04:01:22

Flex 获得png透明截图的问题和解决方法_Flex的相关文章

flex 调试无法正常启动原因分析及解决方法_Flex

1.问题描述 Flex无法调试的情况: 在调试Flex程序的时候,经常后遇到进度为57%无法调试的情况.对于Chrome浏览器,还会遇到 "Flash  Builder 找不到所需版本的 Abobe Flash Player ......"等情况,甚至还会出现下图所示情况: 找不到 Abobe Flash Player :C:\...\Chrome\Application\plugins\NPSWF32.dll  2.问题分析 Flex 无法正常调试,,通常是因为未安装适合版本的fla

flex不显示GIF图片问题的另类解决方法_Flex

让Flex显示动态图片的确令人头痛,不过,我们可以用一些手段让其乖乖显示出来.如下: 1.先到http://code.google.com/p/as3gif/此处下载GIFPlayer0.4.zip ,将里面的org文件夹复制出来.并放到我们的要用到的工程的src文件夹下. 2.示例代码如下,可以参考着看,代码比较简单,就不解释了.

win7系统返回桌面出现透明装假死问题的解决方法

  我们经常使用电脑的用户可能注意到win7系统当你的鼠标停留在右下角的长方形框里,桌面上就会透明的显示,如果单击一下长方形框就能直接返回桌面,win7的这个小功能,直接方便了我们返回桌面,我们不用再将各个软件最小化,也能够直接回到桌面打开软件或进行其他操作.但是如果这方面功能出状况,比如最近就要用户反映自己的win7系统点击显示桌面后出现透明状况,将鼠标放回其他地方依旧呈现透明状况,这个问题是很棘手的,对我们操作电脑运行程序都有一定影响,下面就跟随小编看看win7系统点击显示桌面后出现透明状况

php缩放gif和png图透明背景变成黑色的解决方法

 工作中需要缩放一些gif图然后在去Imagecopymerge,可是发现使用了imagecreatetruecolor和imagecopyresampled后发现背景图不对,本来透明的背景图变成了黑色,后来发现做一些修改才可以: 1 2 3 4 5 6 $img = imagecreatetruecolor(200, 200);  //2.上色  $color=imagecolorallocate($img,255,255,255);  //3.设置透明  imagecolortranspar

flex chrome浏览器调试出现空白的解决方法_Flex

flex 4 在 chrome中调试时,空白,原因是谷歌有个默认的flash播放器,只要将默认的播放器禁用,留下新安装的插件,就OK了,只要在浏览器地址栏中,输入:"chrome://plugins/",会看到flash player有两个文件,点击查看详细,将chrome下面的关闭就ok了.

flex tomcat端口被占用的问题分析及解决方法_Flex

概述: 在启动Tomcat,提示8080端口(如果安装的时候端口被修改了,使用你自己设置的端口)被占用了.解决方法如下: 1. 开始-> 运行 -> 输入cmd 2. 输入 netstat -ano, 查看是哪个程序占用了8080的端口,记住该进程的PID 3. 打开任务管理器, 4. 查找对应第2步的PID的进程.( 如果任务管理器没有PID这一列,请打开 查看-> 选择列, 把PID这一项选上) 5. 关闭该进程,重启tomcat

flash builder-关于Flex中生成容器截图

问题描述 关于Flex中生成容器截图 要生成SkinnableContainer的截图,代码这样写的 private static function photo():void { var bitmapData:BitmapData = new BitmapData(SkinnableContainer.width, SkinnableContainer.height); bitmapData.draw(SkinnableContainer, new Matrix()); var bitmap :

win7系统自带截图工具失灵不能用的解决方法

  win7系统大家在使用的过程中有很多功能可以直接添加,很多的用户在一定情况下大家都使用屏幕截图,有很多的可以利用一些截图软件进行截图,其实大家可以使用系统自带的截图辅助工具来截图,有朋友在截图的时候说不能截图了,不知道是怎么回事失灵了,出现这样的情况不知道怎么解决,那今天就由小编为大家分享这个教程. 截图软件不能使用的解决方法如下: 1.大家用快捷键Win+R键直接打开运行对话框,然后我们在运行窗口输入栏中输入命令REGEDIT直接回车键,就可以弹出打开注册表编辑器设置窗口; 2.在打开的注

mac电脑系统截图名日期后缀去除方法

  mac电脑系统截图名日期后缀去除方法介绍: 第一步:启动「终端」应用程序. 第二步:复制如下命令后粘贴到终端窗口中,然后按下 return 键(enter). defaults write com.apple.screencapture "include-date" 0 第三步:接着输入如下命令,然后再次按 return 键. killall SystemUIServer 就是这样简单.现在你会发现,当你截图的时候,文件名称中就已经不再包含截图的日期和时间啦! 注 1:如果你想恢复