Снизить яркость всех пикселей RGB на 20% в Python?

#python #image

#python #изображение

Вопрос:

Я пытался научить себя более продвинутым методам в Python, но, похоже, не могу найти ничего похожего на эту проблему, чтобы основать свой код.

Первый вопрос: это единственный способ отобразить изображение в терминале для установки Pillow? Я бы предпочел этого не делать, поскольку я пытаюсь затем научить тому, что я изучаю, очень начинающего ученика. Моя функция image.show() ничего не делает.

Второй вопрос: каков наилучший способ снизить яркость всех пикселей RGB в изображении на 20%? То, что у меня ниже, ничего не делает для изменения яркости, но также может полностью скомпилироваться. Я бы предпочел самый простой способ сделать это, насколько это возможно, импортировать минимальные библиотеки.

Третий вопрос: как мне создать новое изображение вместо изменения оригинала? (Т.Е. Снизить яркость на 20%, «image-decreasedBrightness.jpg » создается из «image.jpg «)

вот мой код — извините, он неправильно отформатирован. Каждый раз, когда я пытался сделать отступ, он переходил на панель тегов.

 import Image
import ImageEnhance

fileToBeOpened = raw_input("What is the file name? Include file type.")
image = Image.open(fileToBeOpened)

def decreaseBrightness(image):
    image.show()
    image = image.convert('L')
    brightness = ImageEnhance.Brightness(image) 
    image = brightness.enhance(20) 
    image.show() 
    return image

decreaseBrightness(image)
  

Комментарии:

1. Ну, основной вопрос: вы хотите использовать какую-нибудь качественную библиотеку и написать несколько строк, которые легко понять, или вы хотите написать ее с нуля и должны реализовать самые непонятные и уродливые функции самостоятельно (синтаксический анализ на байтовом уровне; возможно, преобразования цвета, …). Явсегда предпочитайте первое (если библиотеки действительно хороши и если я могу использовать их для лицензирования / установки …). Pillow — кандидат; scikit-image еще лучше!

Ответ №1:

Чтобы сохранить изображение в виде файла, в документации есть пример:

 from PIL import ImageFile

fp = open("lena.pgm", "rb")

p = ImageFile.Parser()

while 1:
    s = fp.read(1024)
    if not s:
        break
    p.feed(s)

im = p.close()

im.save("copy.jpg")
  

Ключевая функция im.save .

Для более глубокого решения возьмите хороший напиток, найдите удобное место для сидения и наслаждайтесь чтением: Документация Pillow 3.4.x .

Комментарии:

1. Должно быть самым простым способом. Действительно попробуйте прочитать документацию для Pillow.ImageFile .

2. @MeganByers В Python нет встроенной поддержки изображений. Вам придется что- то импортировать.