В прошлом я использовал ряд методов для рисования изображений в Windows.Forms, и теперь я пересматриваю некоторые основные библиотеки, которые обрабатывают изображения обложек для нашего продукта. В частности, меня интересует рендеринг одного и того же изображения несколько раз (плитка), чтобы представить поле фонового элемента управления. Предполагая, что изображение имеет точно правильный размер (масштабирование не требуется) и содержит только часть, которую нужно разбить на плитки, каков самый быстрый способ отрисовки этого изображения на экране?
Одна из оптимизаций, которые я использовал, — преобразование изображения в формат PixelFormat.Format32bppPArgb, который предварительно вычисляет некоторые альфа-каналы.
Есть ли разница в производительности между DrawImage и DrawImageUnscaled?
Ищите реальный опыт, а не документально подтвержденные ожидания.
Обновление: покопавшись в классах фреймворка, я обнаружил, что класс Control использует TextureBrush, используя мозаичное изображение. Это выглядит многообещающе.