Bug 48843 - Некорректная работа с форматом PGM
Summary: Некорректная работа с форматом PGM
Status: CLOSED NOTABUG
Alias: None
Product: Sisyphus
Classification: Development
Component: python3-module-Pillow (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Sergey Bolshakov
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-12-18 13:19 MSK by Osmolovskaya Anastasia
Modified: 2023-12-18 16:04 MSK (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Osmolovskaya Anastasia 2023-12-18 13:19:50 MSK
Проверялось в p10 и Sisyphus - ошибка воспроизводится

Версия пакета:
p10 - python3-module-Pillow-9.4.0-alt2
Sisyphus - python3-module-Pillow-10.1.0-alt1

Тестовые стенды:
Alt Server 10.1 x86-64

Шаги для воспроизведения:
1. # apt-get install python3-module-Pillow
2. python3 -> from PIL import Image -> image = Image.open('file.pgm') -> image.show()

Ожидаемый результат: успешно открылось изображение file.pgm
Реальный результат: 
* для Sisyphus все команды выполняются без ошибок, однако само изображение открывается некорректно, появляется ошибка: "Не удалось загрузить изображение"

* для p10 при выполнении команды image.show(), возникают ошибки: 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python3/site-packages/PIL/Image.py", line 2485, in show
    _show(self, title=title)
  File "/usr/lib64/python3/site-packages/PIL/Image.py", line 3508, in _show
    ImageShow.show(image, **options)
  File "/usr/lib64/python3/site-packages/PIL/ImageShow.py", line 62, in show
    if viewer.show(image, title=title, **options):
  File "/usr/lib64/python3/site-packages/PIL/ImageShow.py", line 86, in show
    return self.show_image(image, **options)
  File "/usr/lib64/python3/site-packages/PIL/ImageShow.py", line 112, in show_image
    return self.show_file(self.save_image(image), **options)
  File "/usr/lib64/python3/site-packages/PIL/ImageShow.py", line 108, in save_image
    return image._dump(format=self.get_format(image), **self.options)
  File "/usr/lib64/python3/site-packages/PIL/Image.py", line 628, in _dump
    self.load()
  File "/usr/lib64/python3/site-packages/PIL/ImageFile.py", line 244, in load
    err_code = decoder.decode(b"")[1]
  File "/usr/lib64/python3/site-packages/PIL/PpmImagePlugin.py", line 273, in decode
    data = self._decode_blocks(maxval)
  File "/usr/lib64/python3/site-packages/PIL/PpmImagePlugin.py", line 259, in _decode_blocks
    raise ValueError(msg)
ValueError: Channel value too large for this mode: 10152
Comment 1 Sergey Bolshakov 2023-12-18 13:37:19 MSK
https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html#fully-supported-formats

Предлагаю найти там секцию PPM и решить самостоятельно, принадлежит ли
формат вашего тестового файла к подмножеству поддерживаемых.
Comment 2 Alexander Makeenkov 2023-12-18 15:16:35 MSK
(Ответ для Sergey Bolshakov на комментарий #1)
> https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.
> html#fully-supported-formats
> 
> Предлагаю найти там секцию PPM и решить самостоятельно, принадлежит ли
> формат вашего тестового файла к подмножеству поддерживаемых.

https://pillow.readthedocs.io/en/stable/handbook/image-file-formats.html#ppm

> Pillow reads and writes PBM, PGM, PPM and PNM files containing 1, L, I or RGB data.

(Ответ для Osmolovskaya Anastasia на комментарий #0)
> 2. python3 -> from PIL import Image -> image = Image.open('file.pgm') ->

Выглядит так, будто принадлежит.

Настя, попробуй с другим файлом этого же формата.
Comment 3 Osmolovskaya Anastasia 2023-12-18 15:55:51 MSK
> Настя, попробуй с другим файлом этого же формата.

Попробовала с файлом sample_640×426.pgm, взятым из https://filesamples.com/formats/pgm - ошибка не воспроизводится