Я работаю над веб-приложением, которое редактирует изображение, и часть его включает в себя холст на html. Я получаю область выделения, которую я сохраняю как пример изображения в формате png ниже
![enter image description here](https://i.stack.imgur.com/ng1s9.png)
следующий шаг - получить x, y позиции области выделения, чтобы я знал, где только применить эффект, код выглядит следующим образом
pixels = img.load()
if cropped:
x, y = position['left'], position['top']
else:
x, y = 0, 0
img_width, img_height = 0, 0
matches = []
counter = 0
for _ in range(img.width * img.height):
if img_width == img.width:
img_width = 0
img_height += 1
counter += 1
pixel = pixels[img_width, img_height]
if pixel != (0, 0, 0, 0):
matches.append([img_width+y, img_height+x])
img_width += 1
if matches:
filename = random_filename(extension='.pickle')
with open(filename, 'wb') as f:
# Pickle the 'data' dictionary using the highest protocol available.
pickle.dump(matches, f, pickle.HIGHEST_PROTOCOL)
получает клетки и сохраняет их в рассоле.
Однако, когда я применяю эффект к этим ячейкам, возникает «эффект ореола», когда линия выделения находится на расстоянии от основной области выделения
![enter image description here](https://i.stack.imgur.com/FoyOt.png)
Я убедился, что проблема не в эффекте наложения, поскольку он использует только указанную область, которой не может быть.
Я также пошел еще дальше и использовал один из пикселей области выделения, чтобы восстановить файл png, чтобы увидеть, есть ли в нем проблема (что должно быть)
In [1]: from PIL import Image
In [14]: new = Image.new('RGB', (600, 399))
In [15]: import pickle
In [16]: pickle_file = open('pickle_cells/qPxsEaw7wcQR5YWK9iZrb6r.pickle', 'rb')
In [17]: cells = pickle.load(pickle_file)
In [18]: pickle_file.close()
In [20]: cells[0]
Out[20]: [259, 117]
In [22]: for cell in cells:
...: new.putpixel([cell[0], cell[1]], (50, 50, 50))
...:
In [23]: new.save('test.png')
In [24]:
это создает это изображение, которое показывает ту же ошибку
![enter image description here](https://i.stack.imgur.com/quTaT.png)