Как заменить все пиксели какого-либо цвета в растровом изображении в Rebol? - PullRequest
1 голос
/ 24 мая 2010

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

Я не хочу применять цветной фильтр к изображению, я хочу изменить цвет пикселя пиксель за пикселем, проверив цветовой пиксель, если он, скажем, красный, я хочу, чтобы он стал синим.

Ответы [ 2 ]

1 голос
/ 25 мая 2010

В Rebol изображения также являются сериями, поэтому вы можете использовать большинство функций серии для изменения / поиска цветов RGB и т. Д.

i: load %test.png
type? i
image!
first i
255.255.255.0 (the last value is alpha)
change i 255.0.0.0 ;change the first rgba value to red
view layout [image i] ;you can see the upper-left pixel is now red

вы можете сбросить все значения rgba на изображении:

forall i [print first i]

Вы также можете изменить продолжение части:

change/dup head i blue 100 ;change first 100 pixels to blue

вы также можете работать с i / rgb и i / alpha, это двоичные значения (байты) и вы можете использовать копию, чтобы получить часть изображения:

j: copy/part at i 100x100 50x50 ;copy from 100x100 to 150x150 to a new image.
0 голосов
/ 24 мая 2010

Используйте некоторые из возможностей обработки изображений , как описано здесь: http://www.rebol.com/docs/view-guide.html

Демонстрационная программа, показывающая некоторые из них в действии здесь: http://www.rebol.com/view/demos/gel.r

...