我使用位圖類'.setPixel和.getPixel在.NET CF上繪製我的位圖字體。但它太慢了,在java中,我們通過一次調用getRGB()和setRGB()來設置顏色數組。 .NET CF中有這樣的東西嗎?我的要求僅僅是在指定的x,y處繪製一部分位圖到另一個位圖中。getPixel setPixel太慢了,是否有任何其他的.NET上的替代CF
編輯:源圖像具有透明度(不是alpha,但只是簡單的透明度)。
我使用位圖類'.setPixel和.getPixel在.NET CF上繪製我的位圖字體。但它太慢了,在java中,我們通過一次調用getRGB()和setRGB()來設置顏色數組。 .NET CF中有這樣的東西嗎?我的要求僅僅是在指定的x,y處繪製一部分位圖到另一個位圖中。getPixel setPixel太慢了,是否有任何其他的.NET上的替代CF
編輯:源圖像具有透明度(不是alpha,但只是簡單的透明度)。
不要滾動自己的循環。您應該能夠使用ImageAttributes屬性運行DrawImage方法,設置正確的顏色鍵(白色,紫色,無論您在圖像中使用什麼)。
imageAttributes = new ImageAttributes();
imageAttributes.SetColorKey(Color.Magenta, Color.Magenta);
graphics.DrawImage(image,
destinationRectangle,
sourceRectangle.X,
sourceRectangle.Y,
sourceRectangle.Width,
sourceRectangle.Height,
GraphicsUnit.Pixel,
imageAttributes);
不要用for循環和get/set像素來做自己的'blit'!
使用Graphics.FromImage()
並使用DrawImage()
將其他位圖繪製到其中。
使用位圖,BitBlt功能。我在here中展示了一個例子。
謝謝保羅。這正是我需要的。 – VOX 2010-06-29 22:20:42