Как заменить пиксели в картинке через python?
Как заменить каждый 2-й пиксель в картинке на прозрачный? Смог разбить картинку через numpy но как заменить каждое второе значение не разобрался
Как заменить каждый 2-й пиксель в картинке на прозрачный? Смог разбить картинку через numpy но как заменить каждое второе значение не разобрался
Для прозрачности нужно RGBA, чтобы записать альфа-канал и сохранять лучше в формате, что поддерживает прозрачность (jpg не подойдет)
ℹ️ В коде 0, 0, 0, 0
это и есть R
, G
, B
, A
. Значение A = 255 - пиксель непрозрачен, а 0 - прозрачный
from PIL import Image
file_name = "путь до картинки"
img = Image.open(file_name).convert('RGBA')
pixels = img.load()
width, height = img.size
for i in range(width):
for j in range(height):
if (j + i) % 2 == 0:
pixels[i, j] = 0, 0, 0, 0
img.save("output.png")
Загружал input.jpg
:
Результат:
Данную задачу можно решить с помощью библиотеки PIL. Код максимально тривиальный. Открываем нашу картинку, получаем список со всеми пикселями, пробегаемся по каждому второму пикселю и меняем его значение на (255, 255, 255), то есть на белый цвет.
from PIL import Image
im = Image.open("name.jpg")
pixels = im.load() # список с пикселями
x, y = im.size # ширина (x) и высота (y) изображения
for i in range(x):
for j in range(y):
if (j + i) % 2 == 0:
pixels[i, j] = 255, 255, 255
im.save("new.jpg")
Правда не совсем понятно что имеете ввиду под "каждый 2-й пиксель", но это вы уже сами можете изменить условие в if.