Какой самый быстрый способ нарисовать изображение в Windows.Forms? - PullRequest
1 голос
/ 23 мая 2009

В прошлом я использовал несколько методов для рисования изображений в Windows.Forms, и сейчас я перехожу к некоторым основным библиотекам, которые обрабатывают изображения обложек для нашего продукта. Меня особенно интересует рендеринг одного и того же изображения несколько раз (мозаичным способом) для представления поля элемента управления фоном. Если предположить, что изображение имеет правильный размер (масштабирование не требуется) и содержит только часть, которая будет выложена плиткой, какой самый быстрый метод рисования этого изображения на экране?

Одна из использованных мной оптимизаций - преобразование изображения в PixelFormat.Format32bpp P Argb, которое предварительно вычисляет некоторые из альфа-каналов.

Есть ли разница в производительности между DrawImage и DrawImageUnscaled?

В поисках реального опыта, а не задокументированных ожиданий.

Обновление: После копания в классах фреймворка я вижу, что класс Control использует TextureBrush, используя изображение для мозаичного изображения. Это выглядит многообещающе.

1 Ответ

1 голос
/ 23 мая 2009

Если вы готовы к p / invoke, BitBlt . Если нет, DrawImageUnscaled просто отлично.

...