Документация Python неофициальный перевод

imageop.md

66 строк · 7.6 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/imageop.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 21.2. [`imageop`](https://python-all.ru/2.7/library/imageop.html#module-imageop) – Работа с необработанными данными изображений89Устарело с версии 2.6: Модуль [`imageop`](https://python-all.ru/2.7/library/imageop.html#module-imageop) удалён в Python 3.1011Модуль [`imageop`](https://python-all.ru/2.7/library/imageop.html#module-imageop) содержит несколько полезных операций над изображениями. Он работает с изображениями, состоящими из пикселей глубиной 8 или 32 бита, хранящихся в строках Python. Это тот же формат, что используется модулями `gl.lrectwrite()` и [`imgfile`](https://python-all.ru/2.7/library/imgfile.html#module-imgfile).1213Модуль определяет следующие переменные и функции:1415#### `exception imageop.error`1617Это исключение вызывается при любых ошибках, например, при неизвестном количестве бит на пиксель и т.п.1819#### `imageop.crop(image, psize, width, height, x0, y0, x1, y1)`2021Возвращает выделенную часть *изображения*, которое должно быть размером *width* на *height* и состоять из пикселей размером *psize* байт. *x0*, *y0*, *x1* и *y1* аналогичны параметрам `gl.lrectread()`, то есть граница включается в новое изображение. Новые границы не обязательно должны находиться внутри изображения. Пиксели, оказавшиеся за пределами старого изображения, получают нулевое значение. Если *x0* больше *x1*, новое изображение зеркально отражается. То же самое верно для координат y.2223#### `imageop.scale(image, psize, width, height, newwidth, newheight)`2425Возвращает *изображение*, масштабированное до размера *newwidth* на *newheight*. Интерполяция не выполняется, масштабирование осуществляется простым дублированием или удалением пикселей. Поэтому изображения, созданные компьютером, или изображения с дизерингом будут выглядеть некачественно после масштабирования.2627#### `imageop.tovideo(image, psize, width, height)`2829Применяет вертикальный фильтр нижних частот к изображению. Каждый результирующий пиксель вычисляется как среднее двух вертикально расположенных исходных пикселей. Основное назначение этой функции – предотвращение чрезмерного мерцания при отображении изображения на видеосистеме с чересстрочной разверткой, отсюда и название.3031#### `imageop.grey2mono(image, width, height, threshold)`3233Преобразует 8-битное полутоновое изображение в 1-битное, применяя пороговую обработку ко всем пикселям. Результирующее изображение плотно упаковано и, вероятно, полезно только в качестве аргумента для [`mono2grey()`](https://python-all.ru/2.7/library/imageop.html#imageop.mono2grey).3435#### `imageop.dither2mono(image, width, height)`3637Преобразует 8-битное полутоновое изображение в 1-битное монохромное, используя (простейший) алгоритм дизеринга.3839#### `imageop.mono2grey(image, width, height, p0, p1)`4041Преобразует 1-битное монохромное изображение в 8-битное полутоновое или цветное. Все пиксели с нулевым значением на входе получают значение *p0* на выходе, а все пиксели с единичным значением получают значение *p1* на выходе. Для преобразования монохромного черно-белого изображения в полутоновое передайте соответственно значения `0` и `255`.4243#### `imageop.grey2grey4(image, width, height)`4445Преобразует 8-битное полутоновое изображение в 4-битное полутоновое без дизеринга.4647#### `imageop.grey2grey2(image, width, height)`4849Преобразует 8-битное полутоновое изображение в 2-битное полутоновое без дизеринга.5051#### `imageop.dither2grey2(image, width, height)`5253Преобразует 8-битное полутоновое изображение в 2-битное полутоновое с дизерингом. Как и в [`dither2mono()`](https://python-all.ru/2.7/library/imageop.html#imageop.dither2mono), алгоритм дизеринга в настоящее время очень прост.5455#### `imageop.grey42grey(image, width, height)`5657Преобразует 4-битное полутоновое изображение в 8-битное полутоновое.5859#### `imageop.grey22grey(image, width, height)`6061Преобразует 2-битное полутоновое изображение в 8-битное полутоновое.6263#### `imageop.backward_compatible`6465Если установлено в 0, функции в этом модуле используют не обратно совместимый способ представления многобайтовых пикселей на системах с прямым порядком байтов (little-endian). SGI, для которой изначально был написан этот модуль, является системой с обратным порядком байтов (big-endian), поэтому установка этой переменной не будет иметь эффекта. Однако код изначально не был предназначен для работы на других системах, поэтому в нём были сделаны предположения о порядке байтов, которые не являются универсальными. Установка этой переменной в 0 приведет к обращению порядка байтов на little-endian системах, так что он станет таким же, как на big-endian системах.66