Как оптимизировать преобразование Bitmap в int[]? [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Как оптимизировать преобразование Bitmap в int[]? [дубликат]

Сообщение Anonymous »


Мне нужно извлечь данные о цвете из растрового изображения в четыре целочисленных массива (3 для цветов и один для оттенков серого), используя это (original — это System.Drawing.Bitmap ):

for (int x = 0; x < original.Width; x++) for (int y = 0; y < original.Height; y++) { int r = original.GetPixel(x, y).R; int g = original.GetPixel(x, y).G; int b = original.GetPixel(x, y).B; int k = (int)(r * .3 + g * .59 + b * .11); К[х,у] = г; Р[х,у] = г; Г[х,у] = г; В[х,у] = б; } но это слишком медленно. Как я могу его оптимизировать?

Я знаю, что использование Bitmap.LockBits() и UnlockBits() быстрее, но все, что я нашел, использует указатели и небезопасный код, и я не хочу об этом говорить используйте это.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»