Задать вопрос
@ilya_ya

Что за конструкция pix[4,4][0]?

Здравствуйте. Смотрел статью на хабре, как можно редактировать изображения с помощью пайтоновской библиотеки PIL.
вот код примерно такой
он рабочий. Делает изображение черно-белым.
from PIL import Image, ImageDraw #Подключим необходимые библиотеки.
imagename = input('Введите имя изображения ')#получаем имя изображения
mode = int(input('mode:')) #Считываем номер преобразования.
image = Image.open(imagename) #Открываем изображение.
draw = ImageDraw.Draw(image) #Создаем инструмент для рисования.
width = image.size[0] #Определяем ширину.
height = image.size[1] #Определяем высоту.
pix = image.load() #Выгружаем значения пикселей.
if (mode == 0):
	for i in range(width):
		for j in range(height):
			a = pix[i, j][0]
			b = pix[i, j][1]
			c = pix[i, j][2]
			S = (a + b + c) // 3
			draw.point((i, j), (S, S, S))
image.save("ans.jpg", "JPEG")

и мне не понятен вот этот момент(точнее тип данных в нем).
pix = image.load() #Выгружаем значения пикселей.
a = pix[i, j][0]
b = pix[i, j][1]#вместо i и j понятно, что значения ширины и высоты.
c = pix[i, j][2]

но вот это что?
pix[1, 1]#допустим, что значения ширины и высоты равны 1.

это не похоже на индексацию списков, кортежей.
Помогите пожалуйста...
  • Вопрос задан
  • 440 просмотров
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
LaRN
@LaRN
Senior Developer
Вот здесь хорошее описание этой библиотеки, правда на английском:
www.pythonware.com/media/data/pil-handbook.pdf

Но можно выяснить и практическим путём использую функцию type()
Например так:
type(pix[0,0][0])
Этот код нужно вставить после
pix = image.load()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы