getPixel setPixel слишком медленный, есть ли другая альтернатива на .NET CF - PullRequest
1 голос
/ 29 июня 2010

Я использую Bitmap Class '.setPixel и .getPixel для рисования моих растровых шрифтов в .NET CF. Но это слишком медленно, в java у нас есть getRGB () и setRGB () для установки массива цветов одним вызовом. Есть ли что-то подобное в .NET CF. Мое требование - просто нарисовать часть растрового изображения в другое растровое изображение с указанным x, y.

РЕДАКТИРОВАТЬ: исходное изображение имеет прозрачность (не альфа, а просто прозрачность).

Ответы [ 3 ]

3 голосов
/ 29 июня 2010

Не катите свой собственный цикл. Вы должны иметь возможность запускать метод DrawImage с атрибутом ImageAttributes, устанавливая правильный цветовой ключ (белый, фиолетовый, все, что вы используете в своем изображении).

imageAttributes = new ImageAttributes();
imageAttributes.SetColorKey(Color.Magenta, Color.Magenta);

graphics.DrawImage(image, 
                   destinationRectangle, 
                   sourceRectangle.X, 
                   sourceRectangle.Y, 
                   sourceRectangle.Width, 
                   sourceRectangle.Height, 
                   GraphicsUnit.Pixel, 
                   imageAttributes);
2 голосов
/ 29 июня 2010

Не делайте свой собственный «блиц» с циклом for и получайте / устанавливайте пиксели!

Используйте Graphics.FromImage() и рисуйте в нем другой растр, используя DrawImage().

0 голосов
/ 03 ноября 2013

Использовать растровое изображение, функциональность BitBlt. Я показываю пример в здесь .

...