AS3中bitmapData.getPixel32获取PNG图片颜色
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AS3中bitmapData.getPixel32获取PNG图片颜色相关的知识,希望对你有一定的参考价值。
bitmapdata.setPixel(i,j,bitmap.bitmapData.getPixel32(int(i*(bitmap.width/200)),int(j*(bitmap.height/bitmaph))))
这是个for循环 PNG图片的像素,修改过后用PNGEncoder.as转换后。保存的图片 好像不是 透明的了。。透明处 变成黑色的了。。问题出在哪里呢。
1、没有将bitmapdata设置成透明的。
2、bitmap.bitmapData.getPixel32(int(i*(bitmap.width/200)),int(j*(bitmap.height/bitmaph)))计算错误。可能已超出原图片的范围,所以获取到的值是0,即是黑色。
建议检测方法:
1、确认bitmapdata已设置成透明,new BitmapData(width,height,true,0);//后面两个参数,true,0是设置透明的。
2、setPixel时,先将原图片的像素全部放到另一个BitmapData中,即相当于复制一次图片,查看保存是否带有黑色。此时,可以将图片添加到舞台中查看一下,确保未保存时,图片是正常的。如果检测正常,那么就可以肯定错误是第二个可能性导致的,此时,检测算法。
否则,就是保存的代码导致问题,故需要检测保存代码。
由于算法比较复杂,且没有具体例子,故无法协助检测。 参考技术A 请使用setPixel32,而不是setPixel,setPixel不带透明,setPixel32带透明
在 as2 中确定 event.target
【中文标题】在 as2 中确定 event.target【英文标题】:determining event.target in as2 【发布时间】:2012-08-21 22:46:34 【问题描述】:如何在 as2 中检测在哪个movieClip 上触发了事件。我已经列出了重复的影片剪辑,并希望在每个影片剪辑上添加点击事件,并区分哪个影片剪辑事件有 fird。我知道 as3 中的解决方案,但需要 as2 解决方案。请帮忙。
【问题讨论】:
【参考方案1】:在 AS2 中,当您使用 myButton.onRelease = myFunction;
分配函数时,您可以在函数内简单地使用 this
引用调用者:
function myFunction()
trace(this._name);
myButton.onRelease = myFunction; // will trace "myButton" when you click it
【讨论】:
以上是关于AS3中bitmapData.getPixel32获取PNG图片颜色的主要内容,如果未能解决你的问题,请参考以下文章