我正在使用Bitmap Class的.setPixel和.getPixel在.NET CF上绘制我的位图字体。但它太慢了,在java中我们有getRGB()和setRGB()通过一次调用来设置颜色数组。在.NET CF中是否有类似的东西。我的要求只是将一个位图的一部分绘制到指定x,y的另一个位图。
编辑:源图像具有透明度(不是alpha而只是简单的透明度)。
答案 0 :(得分:3)
不要滚动你自己的循环。您应该能够使用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);
答案 1 :(得分:2)
不要使用for循环和get / set像素做自己的'blit'!
使用Graphics.FromImage()
并使用DrawImage()
将其他位图绘制到其中。
答案 2 :(得分:0)
使用位图,BitBlt功能。我在here中展示了一个示例。