Молчун
Зарегистрирован: 25 November 2005
Сообщения: 17
Примеры кода: 0
|
RE: быстрое рисование точек |
30 November 2005 11:55 |
|
|
|
|
Два варианта рисования точек на заданном Graphics:
private Bitmap B = new Bitmap(1, 1);
public void DrawDot(Graphics G, int x, int y, Color c)
{
// Вариант1
G.FillRectangle(new SolidBrush(c), x, y, 1, 1);
//Вариант2
B.SetPixel(0, 0, c);
G.DrawImageUnscaled(B, x, y);
}
Первый быстрее почти в три раза.
Если есть какой-то буферный битмап, в котором происходит рисование и который на OnPaint кладется на Graphics целиком - тогда надо пользоваться методом битмапа SetPixel. Тоже не быстро.
Способ сделать это быстрее - заранее сделать для буферного битмапа MemoryStream, в который этот битмап записать. Потом получить буфер стрима, отступить от начала 54 байта - это и будут байты картинки, которые можно менять вручную.
Данное сообщение получено с сайта GotDotNet.RU
|
|