Как построить jpeg из списка оттенков серого

Я очень новичок в этом, поэтому извиняюсь за любое неправильное использование термина.

Я кодирую на Python. У меня есть 2D-список, содержащий значения оттенков серого для каждого пикселя изображения. Я изменил эти значения по мере необходимости и теперь хотел бы сохранить их в новом изображении. Как я могу создать этот новый jpeg из моего массива значений оттенков серого?

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

Я использую PIL; Я открыл исходный файл с помощью Image.open('filename') и извлек значения оттенков серого в каждом месте пикселя с помощью im.getpixel((i,j)) внутри двух циклов for.


person user2676750    schedule 12.08.2013    source источник


Ответы (2)


Что-то вроде этого должно заставить вас работать (не проверено):

old_image = Image.open("old.jpg")
old_data = old_image.load()

new_image = Image.new("RGB", old_image.size)
new_data = new_image.load()

width, height = old_image.size
for x in range(width):
    for y in range(height):
        new_data[x, y] = old_data[x, y] 

new_image.save("new.jpg")
person elyase    schedule 13.08.2013

Будьте осторожны с jpeg, так как jpeg потеряет много данных. Если вы хотите сохранить значения каждого пикселя без потерь при сжатии, вам следует использовать png. См. этот вопрос (в котором также есть ответ на ваш первоначальный вопрос) для получения дополнительной информации:

PIL изменяет значение пикселя при сохранении

person Schiem    schedule 13.08.2013