作者etrexetrex (moonet)
看板Flash
标题[心得] BitmapData.setPixel32 bug
时间Tue Apr 10 15:30:06 2012
有上色程式码的
blog :
http://etrex.blogspot.com/2012/04/bitmapdatasetpixel32-bug.html
== 原文 ==
var color1:uint = 0x01010101;
var bitmapData:BitmapData = new BitmapData(1,1,true, color1);
var color2:uint = bitmapData.getPixel32(0,0);
trace(color1 == color2);
以上的程式输出 :
false
var color1:uint = 0x01010101;
var bitmapData:BitmapData = new BitmapData(1,1,true, color1);
bitmapData.setPixel32(0,0,color1);
var color2:uint = bitmapData.getPixel32(0,0);
trace(color1 == color2);
trace(color1.toString(16));
trace(color2.toString(16));
以上的程式输出 :
false
1010101
1000000
从这两个 case 我们知道在 setPixel32 设定颜色跟 BitmapData 建构式传入颜色是一样
的结果
var color1:uint = 0x010179ff;
var bitmapData:BitmapData = new BitmapData(1,1,true, color1);
var color2:uint = bitmapData.getPixel32(0,0);
trace("color1 = " + color1.toString(16));
trace("color2 = " + color2.toString(16));
以上的程式输出 :
color1 = 10179ff
color2 = 10000ff
var color1:uint = 0x010180ff;
var bitmapData:BitmapData = new BitmapData(1,1,true, color1);
var color2:uint = bitmapData.getPixel32(0,0);
trace("color1 = " + color1.toString(16));
trace("color2 = " + color2.toString(16));
以上的程式输出 :
color1 = 10180ff
color2 = 100ffff
从这两个 case 我们知道他是根据 A 的值对RGB分别作某个四舍五入的行为
我猜是为了绘图加速之类的事情作的吧
不过这个真的会害死人 = =
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.137.198.18
1F:推 scars:alpha值在 0xAA (0.666)以下才会发生...回圈跑出来的 04/10 21:13
2F:→ etrexetrex:color1 = b0ffffff color2 = b0fefefe 04/10 21:25
3F:→ etrexetrex:规律倒不是那麽重要 在写程式时应该避免 getPixel 04/10 21:26