Я уже рассмотрел этот вопрос: вопрос SO и, похоже, реализовал очень похожую технику для замены одного цвета, включая альфа-значения:
c = Image.open(f)
c = c.convert("RGBA")
w, h = c.size
cnt = 0
for px in c.getdata():
c.putpixel((int(cnt % w), int(cnt / w)), (255, 0, 0, px[3])) cnt += 1
Однако это очень медленно. Я нашел этот рецепт на interwebs, но до сих пор не использовал его: рецепт
Я пытаюсь сделать несколько изображений PNG, состоящих из одного цвета, белого. Каждый пиксель на 100% белый с различными альфа-значениями, включая альфа = 0. То, что я хочу сделать, - это в основном раскрасить изображение с новым цветом набора, например, # ff0000 < 00-ff > . Итак, мои стартовые и результирующие изображения будут выглядеть так, как если бы левая сторона была моим начальным изображением, а справа - мое конечное изображение (ПРИМЕЧАНИЕ: фон был изменен на светло-серый, чтобы вы могли видеть его, поскольку он на самом деле прозрачен, t видеть левые точки.)
Какой лучший способ сделать это?