> **Источник:** https://python-all.ru/2.7/library/imgfile.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 39.11. [`imgfile`](https://python-all.ru/2.7/library/imgfile.html#module-imgfile) – Поддержка файлов SGI imglib

Устарело с версии 2.6: Модуль [`imgfile`](https://python-all.ru/2.7/library/imgfile.html#module-imgfile) удалён в Python 3.

Модуль [`imgfile`](https://python-all.ru/2.7/library/imgfile.html#module-imgfile) позволяет программам на Python получать доступ к файлам изображений SGI imglib (также известным как файлы `.rgb`). Модуль далёк от полной реализации, однако предоставляется, поскольку имеющейся функциональности в некоторых случаях достаточно. В настоящее время файлы цветовых карт не поддерживаются.

Модуль определяет следующие переменные и функции:

#### `exception imgfile.error`

Это исключение возбуждается при любых ошибках, например, неподдерживаемый тип файла и т.д.

#### `imgfile.getsizes(file)`

Эта функция возвращает кортеж `(x, y, z)`, где *x* и *y* – размер изображения в пикселях, а *z* – количество байтов на пиксель. В настоящее время поддерживаются только 3-байтовые пиксели RGB и 1-байтовые пиксели в оттенках серого.

#### `imgfile.read(file)`

Эта функция читает и декодирует изображение из указанного файла и возвращает его в виде строки Python. Строка содержит либо 1-байтовые пиксели в оттенках серого, либо 4-байтовые пиксели RGBA. Первым в строке идёт левый нижний пиксель. Этот формат подходит, например, для передачи в `gl.lrectwrite()`.

#### `imgfile.readscaled(file, x, y, filter[, blur])`

Эта функция идентична read, но возвращает изображение, масштабированное до заданных размеров *x* и *y*. Если параметры *filter* и *blur* опущены, масштабирование выполняется простым удалением или дублированием пикселей, поэтому результат будет далёк от идеала, особенно для компьютерных изображений.

В качестве альтернативы можно указать фильтр для сглаживания изображения после масштабирования. Поддерживаются следующие формы фильтра: `'impulse'`, `'box'`, `'triangle'`, `'quadratic'` и `'gaussian'`. Если фильтр указан, *blur* – необязательный параметр, задающий размытие фильтра. По умолчанию `1.0`.

[`readscaled()`](https://python-all.ru/2.7/library/imgfile.html#imgfile.readscaled) не пытается сохранить правильное соотношение сторон, поэтому это ответственность пользователей.

#### `imgfile.ttob(flag)`

Эта функция устанавливает глобальный флаг, определяющий, читаются или записываются строки изображения снизу вверх (флаг равен нулю, совместимо с SGI GL) или сверху вниз (флаг равен единице, совместимо с X). По умолчанию – ноль.

#### `imgfile.write(file, data, x, y, z)`

Эта функция записывает данные RGB или в оттенках серого из *data* в файл изображения *file*. *x* и *y* задают размер изображения, *z* равен 1 для 1-байтовых изображений в оттенках серого или 3 для изображений RGB (которые хранятся как 4-байтовые значения, из которых используются только младшие три байта). Это форматы, возвращаемые `gl.lrectread()`.
