Применение Python функции логического_xor к двум изображениям GIF возвращает ошибку ValueError: изображение имеет неправильный режим - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть два gif-изображения, и мне нужно сделать на них logic_xor из библиотеки PIL Это мой код:

from PIL import Image</p>

<p>image = Image.open("image.gif")
key = Image.open("key.gif")</p>

<p>test = image.mode == key.mode</p>

<p>print(test)</p>

<p>def logical_xor(image1, image2):
    """Logical XOR between two images.
        .. code-block:: python
        out = ((bool(image1) != bool(image2)) % MAX)
       :rtype: :py:class:<code>~PIL.Image.Image</code>
       """</p>

<pre><code>   image1.load()
   image2.load()
   return image1._new(image1.im.chop_xor(image2.im))

secret = logical_xor(image, key)
</code>

Я получаю эту ошибку:

True Traceback (most recent call last): File "C:/Users/negut_000/OneDrive/Scoala/Crypto/Image Encrypt Decrypt OTP/Encrypt.py", line 24, in <module> secret = logical_xor(image, key) File "C:/Users/negut_000/OneDrive/Scoala/Crypto/Image Encrypt Decrypt OTP/Encrypt.py", line 21, in logical_xor return image1._new(image1.im.chop_xor(image2.im)) ValueError: image has wrong mode Process finished with exit code 1

Кажется, что изображения имеют одинаковый режим, поэтому я не понимаю проблемы. Пожалуйста, помогите!

1 Ответ

0 голосов
/ 06 сентября 2018

Использование вместо

   image = Image.open("image.gif")
   key = Image.open("key.gif")

Этот код

image = Image.open("image.gif", mode='r').convert("1")
key = Image.open("key.gif", mode='r').convert("1")
...