#python #image #python-imaging-library
#python #изображение #python-imaging-library
Вопрос:
Я часами возился с Python, пытаясь выяснить, как превратить мое цветное изображение в цветной негатив, и, похоже, я просто не могу в этом разобраться..
Я импортировал файл PIL и изображение из файла PIL и знаю, что мне нужно сделать что-то похожее на (255.0 — красный, 255.0 — зеленый, 255.0 — синий), чтобы отменить изображение, но, похоже, я просто не могу понять, как включить это в мой цикл ‘for’.
Я действительно не так хорош в Python вообще, и любая помощь была бы действительно оценена =/
заранее благодарю вас 🙂
Комментарии:
1. Или, еще лучше, покажите нам весь соответствующий код, который вы написали.
Ответ №1:
inverted = Image.eval(original, lambda(x):255-x)
Ответ №2:
Я сам не пользователь PIL, но быстрый поиск в документации обнаружил invert
функцию.
ImageOps.invert(image) => image
Invert (negate) the image.
Возможно, это то, что вы ищете?
Комментарии:
1. мне было интересно, есть ли способ сделать это без использования функции invert.. как с самими фактическими значениями?
2. Вероятно, вам нужно изучить
im.tostring
иim.fromstring
. Это также потребует от вас ознакомления сstruct
модулем Python.
Ответ №3:
Я понимаю, что эта тема довольно старая, но я наткнулся на это в своих путешествиях и подумал, что это актуально, надеюсь, это поможет.
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)
Комментарии:
1. Требуется ли для этого импортировать определенный пакет?
makePicture
похоже, не является частью стандартного python.2. аааа, конечно, это моя вина. Ошибка новичка. Я изучаю jython в JES, в который должны быть включены некоторые дополнительные элементы.
Ответ №4:
for r,row in enumerate(myPicture):
for c,value in enumerate(row):
myPicture[r][c] = invert(value)