看一下哪个坐标点是"白色",比如(X,Y).是指你看到的白色,而不是数值意义上的"255,255,255,255".在处理成透明时,检测的颜色应该是(X,Y),而不是"255,255,255,255".因为系统在解压图片显示后,看上去是白色,但它就不是白色,所以应该用指定点的颜色来判断,而不应该用白色来判断.
比如一个Bitmmap,上面有白色,虽然是rgb(255,255,255,255).但由于系统处理时会有个解压的过程,所以最终它就不是rgb(255,255,255,255),虽然看起来像是纯白.那么在这种情况下,假设图片左上角(1,1)就是这个颜色,而你想把它变成透明,那么应该用这样的方法:
if Bitmap.GetPixel(x,y)=Bitmap.GetPixel(1,1) then
而不是
if Bitmap.GetPixel(x,y)=rgb(255,255,255,255) then