2011-05-28 2 views
2

Эй, ребята, я часами сижу с Python, пытаясь понять, как превратить мое цветное изображение в негатив цвета, и я просто не могу показаться уметь это выяснить.Python: Создание негативного изображения RGB-изображения

Я импортировал PIL и изображение из PIL и знаю, что мне нужно сделать что-то похожее на (255.0 - red, 255.0 - green, 255.0 - blue), чтобы свести на нет изображение , но я просто не могу понять, как включить это в мой цикл «for».

Я действительно не так хорошо питона вообще, и любая помощь будет действительно иметь в виду =/

большое спасибо заранее :)

+0

Или еще лучше, покажите нам все соответствующие коды, которые вы написали. – mtrw

ответ

1
for r,row in enumerate(myPicture): 
    for c,value in enumerate(row): 
     myPicture[r][c] = invert(value) 
6
inverted = Image.eval(original, lambda(x):255-x) 
4

Я не, сам , пользователь PIL, но быстрый поиск the documentation показал функцию invert.

ImageOps.invert(image) => image 
    Invert (negate) the image. 

Возможно, это вы ищете?

+0

Мне было интересно, есть ли способ сделать это, не используя инвертирующую функцию .. как с фактическими значениями сами? – s2Serenitys2

+0

Вам, вероятно, нужно изучить 'im.tostring' и' im.fromstring'. Это также потребует, чтобы вы познакомились с модулем 'struct' Python. – mtrw

1

Я понимаю, что эта тема довольно старая, но я наткнулся на это в своих путешествиях и подумал, что это актуально, надеюсь, что это поможет.

def invert(): 
    picture=makePicture("C:/somepic.png") 
    for px in getPixels(picture): 
     r=getRed(px) 
     g=getGreen(px) 
     b=getBlue(px) 
     newColour=makeColor(255-r,255-g,255-b) 
     setColor(px,newColour) 
    repaint(picture) 
+0

Требуется ли импорт определенного пакета? 'makePicture', похоже, не входит в стандартный питон. –

+1

аххх, конечно, это мое плохое. Ошибка новичков. Я изучаю jython в JES, который должен иметь некоторые напуганные дополнительные небольшие кусочки. – CSternsdorf

Смежные вопросы