Я использую альфа-значение определенных пикселей, чтобы отслеживать их положение во время поворота.Я заметил, что в некоторых случаях я теряю установленное значение Alpha.Пример кода, показывающий проблему:
def showAlphas(rotation, img):
imgPixels = img.load()
foundAlpha = False
for w in range(0, img.width):
for h in range(0, img.height):
if imgPixels[w, h][3]==50:
print 'Found at {}, {} in Rotation {}'.format(w, h, rotation)
foundAlpha = True
if not foundAlpha:
print 'Alpha missing from rotation {}'.format(rotation)
img = Image.new('RGBA', (100, 50), color='black')
img.putpixel((10, 10), (255, 0, 0, 50))
for x in range(1, 360, 1):
rotated = img.rotate(x, expand=True)
showAlphas(x, rotated)
Пример вывода:
Found at 96, 41 in Rotation 194
Found at 96, 41 in Rotation 195
Alpha missing from rotation 196
Found at 98, 41 in Rotation 197
Found at 97, 41 in Rotation 198
Found at 98, 41 in Rotation 198
Alpha missing from rotation 199
Alpha missing from rotation 200
Found at 98, 41 in Rotation 201
Found at 97, 40 in Rotation 202
Found at 98, 40 in Rotation 202
Использование подушки 5.3.0
Что-то не так в повороте?Насколько я знаю, Expand = True - единственная опция, которую мне нужно указать (чтобы изображение не обрезалось в определенных ориентациях)?
Я не привязан к использованию подушки, но мне нужно что-то отслеживатьконкретные координаты пикселей в различных операциях изменения размера и поворота, а также при использовании Pillow и отслеживания альфа-значений, будут делать это.Я действительно не хочу пытаться отслеживать значения RGB, но боюсь, что это может быть связано с той же проблемой.Любые другие предложения?