Исчезая изображение постепенно

Идея этой функции состоит в том, чтобы исчезнуть верхняя половина только изображения (делайте его постепенно более темным). Вот то, что я имею, но это, кажется, делает всю верхнюю половину чистой черной.

def fadeDownFromBlack(pic1):

w=getWidth(pic1)
h=getHeight(pic1)

for y in range(0,h/2):
     for x in range(0,w):
        px=getPixel(pic1,x,y) 
        setBlue(px,y*(2.0/h)) 
        setRed(px,y*(2.0/h)) 
        setGreen(px,y*(2.0/h))
6
задан TylerH 8 February 2017 в 05:25
поделиться

3 ответа

Давайте рассмотрим только одну строку:

setBlue(px,y*(2.0/h))

и ключевая часть здесь -

y*(2.0/h)

y меняется, когда вы спускаетесь вниз. Давайте попробуем несколько простых значений для y и h. Допустим, h равно 100, и мы рассмотрим, когда y равно 0 и 50 (h/2). Для y = 0 мы получим 0. Для y = 50 мы получим 1. Если диапазон значений для цветов равен 256, а 0 - самый темный, то неудивительно, что он черный. У вас есть диапазон значений от 0 до 1, но я предполагаю, что вы хотите взять это число и умножить его на старое значение цвета.

То, что вы хотите, это:

setBlue(px,y*(2.0/h)*getBlue(px))

и аналогичные вещи для других цветов.

3
ответ дан 9 December 2019 в 22:33
поделиться

Чтобы затемнить пиксель, нужно умножить красный, зеленый и синий уровни на соответствующую долю.

Что вы делаете:

setBlue(px,y*(2.0/h))

Что вам говорят делать:

setBlue(px,y*(2.0/h) * getBlue(px))
4
ответ дан 9 December 2019 в 22:33
поделиться

Выясните, какова шкала для методов setBlue/Red/Green. Я предполагаю, что 0 соответствует черному цвету, но какой самый яркий? Похоже, вы предполагаете, что это 1, но на самом деле это может быть 255 или что-то в этом роде. Даже если это 1, похоже, что этот код не принимает во внимание старое значение пикселя, а просто устанавливает ему точный цвет, основываясь на его вертикальном положении. Возможно, это то, что вам нужно, но я сомневаюсь. Скорее всего, вы хотите умножить текущее значение пикселя на что-то другое.

2
ответ дан 9 December 2019 в 22:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: