2013-08-12 3 views
0

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

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

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

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

ответ

1

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

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") 
0

Осторожнее с JPEG, хотя, как JPEG потеряет много данных. Если вы хотите сохранить значения каждого пикселя без потери сжатия, тогда вы должны использовать png. См. Этот вопрос (на который также есть ответ на ваш исходный вопрос):

PIL changes pixel value when saving

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