Позвольте мне объяснить, чего я пытаюсь достичь. Я хочу создать своего рода «возрастную карту» изображения. Это означает, что каждый кадрПриращение каждого пикселя в BitmapData
- значение каждого пикселя увеличивается на 1.
- модифицированных пикселов установлены на 0.
Есть ли способ сделать это эффективно без пробегаю по всем пикселям и вызова getPixel
/setPixel
?
Для сброса измененных пикселей я думаю об использовании bitmapData.draw()
с комбинацией blendModes/colorTransform; например нарисуйте форму по возрастной карте, используя форму цвета 0, сохраняя форму, но делая форму черной, то есть 0x000000
.
Однако приращение каждого пикселя на 1 может быть более сложным. Я мог бы создать изображение со всеми значениями 0x000001
и использовать .draw()
, чтобы добавить его в каждый фрейм, но используя BlendMode.ADD
клипы каждого канала в 0xFF
, что позволяет использовать только 255 разных возрастных значений.
Любые предложения по эффективному обходу? Могу ли я применить ColorTransform
или ColorMatrixFilter
ко всему изображению?
Спасибо за ответ. Дело в том, что я использую Haxe; поэтому поддержка PixelBender несколько сомнительна. В итоге я использовал только синий канал, применяя ColorTransform, который имеет 'blueOffset = 1' каждого кадра. Это ограничивает меня до 255 значений. – noio