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

---

# 39.12. [`jpeg`](https://python-all.ru/2.7/library/jpeg.html#module-jpeg) – Чтение и запись файлов JPEG

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

Модуль [`jpeg`](https://python-all.ru/2.7/library/jpeg.html#module-jpeg) предоставляет доступ к компрессору и декомпрессору JPEG, написанным Independent JPEG Group (IJG). JPEG – это стандарт сжатия изображений; он определён в ISO 10918. Подробнее о JPEG или программном обеспечении Independent JPEG Group см. в стандарте JPEG или документации, поставляемой с ПО.

Портативный интерфейс для файлов изображений JPEG доступен в Python Imaging Library (PIL) от Фредрика Лунда. Информацию о PIL можно найти на [http://www.pythonware.com/products/pil/](https://python-all.ru/2.7/library/jpeg.html).

Модуль [`jpeg`](https://python-all.ru/2.7/library/jpeg.html#module-jpeg) определяет исключение и несколько функций.

#### `exception jpeg.error`

Исключение, вызываемое [`compress()`](https://python-all.ru/2.7/library/jpeg.html#jpeg.compress) и [`decompress()`](https://python-all.ru/2.7/library/jpeg.html#jpeg.decompress) в случае ошибок.

#### `jpeg.compress(data, w, h, b)`

Обрабатывает data как пиксельную карту ширины *w* и высоты *h*, с *b* байтами на пиксель. Данные представлены в порядке SGI GL, поэтому первый пиксель находится в левом нижнем углу. Это означает, что возвращаемые данные `gl.lrectread()` можно сразу передать в [`compress()`](https://python-all.ru/2.7/library/jpeg.html#jpeg.compress). В настоящее время допускаются только 1-байтовые и 4-байтовые пиксели: первые обрабатываются как оттенки серого, вторые – как цвет RGB. [`compress()`](https://python-all.ru/2.7/library/jpeg.html#jpeg.compress) возвращает строку, содержащую сжатое изображение в формате JFIF.

#### `jpeg.decompress(data)`

Data – это строка, содержащая изображение в формате JFIF. Возвращается кортеж `(data, width, height, bytesperpixel)`. Данные также подходят для передачи в `gl.lrectwrite()`.

#### `jpeg.setoption(name, value)`

Устанавливает различные параметры. Последующие вызовы [`compress()`](https://python-all.ru/2.7/library/jpeg.html#jpeg.compress) и [`decompress()`](https://python-all.ru/2.7/library/jpeg.html#jpeg.decompress) будут использовать эти параметры. Доступны следующие параметры:

| Параметр | Эффект |
| --- | --- |
| `'forcegray'` | Принудительно преобразовывать вывод в оттенки серого, даже если входные данные – RGB. |
| `'quality'` | Устанавливает качество сжатого изображения в значение от `0` до `100` (по умолчанию `75`). Влияет только на сжатие. |
| `'optimize'` | Выполнять оптимизацию таблицы Хаффмана. Занимает больше времени, но приводит к меньшему размеру сжатого изображения. Влияет только на сжатие. |
| `'smooth'` | Выполнять межблочное сглаживание несжатого изображения. Полезно только для изображений низкого качества. Влияет только на декомпрессию. |

> **См. также**
>
> **Стандарт сжатия неподвижных изображений JPEG**
>
> Канонический справочник по формату изображений JPEG, автор Пеннебейкер и Митчелл.
>
> **[Информационные технологии – Цифровое сжатие и кодирование непрерывно-тоновых неподвижных изображений – Требования и руководящие принципы](https://python-all.ru/2.7/library/jpeg.html)**
>
> Стандарт ISO для JPEG также опубликован как ITU T.81. Он доступен онлайн в формате PDF.
