c # winforms GDI + - PullRequest
       4

c # winforms GDI +

1 голос
/ 11 января 2011

У меня есть растровое изображение, которое я создал, разбивая один и тот же рисунок несколько раз. Когда растровое изображение создано, оно раскрашивает плитки на основе определенных критериев.

Когда битмап загружен, я хочу дать пользователю возможность изменять цвета тайла на основе дополнительных предварительно определенных критериев. Должен ли я поэтому отказаться от текущего растрового изображения, сгенерировать заново с новыми цветами и прикрепить к панели. Или я могу перебрать растровое изображение для каждой плитки и таким образом изменить цвета?

Спасибо.

Ответы [ 2 ]

1 голос
/ 11 января 2011

Это зависит от того, как часто пользователь может менять цвета плитки. Если они не будут делать это слишком часто, то, вероятно, будет проще сгенерировать новое растровое изображение (в основном потому, что ваш код кажется оптимизированным для этого сценария).

Однако, более производительная возможность - использовать методы Bitmap.LockBits / UnlockBits, чтобы получить данные пикселей в растровом изображении, а затем непосредственно манипулировать данными пикселей. См. Документацию MSDN по методу Bitmap.LockBits (http://msdn.microsoft.com/en-us/library/5ey6h79d.aspx) для примера того, как это сделать.

1 голос
/ 11 января 2011

Насколько я знаю, единственный способ пройти по растровому изображению и изменить цвета - это делать его попиксельно, поэтому я думаю, что ваш лучший способ - создать растровое изображение с нуля, когда пользователь выбирает новые цвета.

...