2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
:mod:`imageop` --- Manipulate raw image data
|
|
|
|
============================================
|
|
|
|
|
|
|
|
.. module:: imageop
|
|
|
|
:synopsis: Manipulate raw image data.
|
2008-05-11 21:08:34 -03:00
|
|
|
:deprecated:
|
Merged revisions 68133-68134,68141-68142,68145-68146,68148-68149,68159-68162,68166,68171-68174,68179,68195-68196,68210,68214-68215,68217-68222 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r68133 | antoine.pitrou | 2009-01-01 16:38:03 +0100 (Thu, 01 Jan 2009) | 1 line
fill in actual issue number in tests
........
r68134 | hirokazu.yamamoto | 2009-01-01 16:45:39 +0100 (Thu, 01 Jan 2009) | 2 lines
Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open
file with `str' filename on Windows.
........
r68141 | benjamin.peterson | 2009-01-01 17:43:12 +0100 (Thu, 01 Jan 2009) | 1 line
fix highlighting
........
r68142 | benjamin.peterson | 2009-01-01 18:29:49 +0100 (Thu, 01 Jan 2009) | 2 lines
welcome to 2009, Python!
........
r68145 | amaury.forgeotdarc | 2009-01-02 01:03:54 +0100 (Fri, 02 Jan 2009) | 5 lines
#4801 _collections module fails to build on cygwin.
_PyObject_GC_TRACK is the macro version of PyObject_GC_Track,
and according to documentation it should not be used for extension modules.
........
r68146 | ronald.oussoren | 2009-01-02 11:44:46 +0100 (Fri, 02 Jan 2009) | 2 lines
Fix for issue4472: "configure --enable-shared doesn't work on OSX"
........
r68148 | ronald.oussoren | 2009-01-02 11:48:31 +0100 (Fri, 02 Jan 2009) | 2 lines
Forgot to add a NEWS item in my previous checkin
........
r68149 | ronald.oussoren | 2009-01-02 11:50:48 +0100 (Fri, 02 Jan 2009) | 2 lines
Fix for issue4780
........
r68159 | ronald.oussoren | 2009-01-02 15:48:17 +0100 (Fri, 02 Jan 2009) | 2 lines
Fix for issue 1627952
........
r68160 | ronald.oussoren | 2009-01-02 15:52:09 +0100 (Fri, 02 Jan 2009) | 2 lines
Fix for issue r1737832
........
r68161 | ronald.oussoren | 2009-01-02 16:00:05 +0100 (Fri, 02 Jan 2009) | 3 lines
Fix for issue 1149804
........
r68162 | ronald.oussoren | 2009-01-02 16:06:00 +0100 (Fri, 02 Jan 2009) | 3 lines
Fix for issue 4472 is incompatible with Cygwin, this patch
should fix that.
........
r68166 | benjamin.peterson | 2009-01-02 19:26:23 +0100 (Fri, 02 Jan 2009) | 1 line
document PyMemberDef
........
r68171 | georg.brandl | 2009-01-02 21:25:14 +0100 (Fri, 02 Jan 2009) | 3 lines
#4811: fix markup glitches (mostly remains of the conversion),
found by Gabriel Genellina.
........
r68172 | martin.v.loewis | 2009-01-02 21:32:55 +0100 (Fri, 02 Jan 2009) | 2 lines
Issue #4075: Use OutputDebugStringW in Py_FatalError.
........
r68173 | martin.v.loewis | 2009-01-02 21:40:14 +0100 (Fri, 02 Jan 2009) | 2 lines
Issue #4051: Prevent conflict of UNICODE macros in cPickle.
........
r68174 | benjamin.peterson | 2009-01-02 21:47:27 +0100 (Fri, 02 Jan 2009) | 1 line
fix compilation on non-Windows platforms
........
r68179 | raymond.hettinger | 2009-01-02 22:26:45 +0100 (Fri, 02 Jan 2009) | 1 line
Issue #4615. Document how to use itertools for de-duping.
........
r68195 | georg.brandl | 2009-01-03 14:45:15 +0100 (Sat, 03 Jan 2009) | 2 lines
Remove useless string literal.
........
r68196 | georg.brandl | 2009-01-03 15:29:53 +0100 (Sat, 03 Jan 2009) | 2 lines
Fix indentation.
........
r68210 | georg.brandl | 2009-01-03 20:10:12 +0100 (Sat, 03 Jan 2009) | 2 lines
Set eol-style correctly for mp_distributing.py.
........
r68214 | georg.brandl | 2009-01-03 20:44:48 +0100 (Sat, 03 Jan 2009) | 2 lines
Make indentation consistent.
........
r68215 | georg.brandl | 2009-01-03 21:15:14 +0100 (Sat, 03 Jan 2009) | 2 lines
Fix role name.
........
r68217 | georg.brandl | 2009-01-03 21:30:15 +0100 (Sat, 03 Jan 2009) | 2 lines
Add rstlint, a little tool to find subtle markup problems and inconsistencies in the Doc sources.
........
r68218 | georg.brandl | 2009-01-03 21:38:59 +0100 (Sat, 03 Jan 2009) | 2 lines
Recognize usage of the default role.
........
r68219 | georg.brandl | 2009-01-03 21:47:01 +0100 (Sat, 03 Jan 2009) | 2 lines
Fix uses of the default role.
........
r68220 | georg.brandl | 2009-01-03 21:55:06 +0100 (Sat, 03 Jan 2009) | 2 lines
Remove trailing whitespace.
........
r68221 | georg.brandl | 2009-01-03 22:04:55 +0100 (Sat, 03 Jan 2009) | 2 lines
Remove tabs from the documentation.
........
r68222 | georg.brandl | 2009-01-03 22:11:58 +0100 (Sat, 03 Jan 2009) | 2 lines
Disable the line length checker by default.
........
2009-01-03 17:55:17 -04:00
|
|
|
|
2008-05-11 21:08:34 -03:00
|
|
|
.. deprecated:: 2.6
|
|
|
|
The :mod:`imageop` module has been removed in Python 3.0.
|
2007-08-15 11:28:01 -03:00
|
|
|
|
|
|
|
The :mod:`imageop` module contains some useful operations on images. It operates
|
|
|
|
on images consisting of 8 or 32 bit pixels stored in Python strings. This is
|
|
|
|
the same format as used by :func:`gl.lrectwrite` and the :mod:`imgfile` module.
|
|
|
|
|
|
|
|
The module defines the following variables and functions:
|
|
|
|
|
|
|
|
|
|
|
|
.. exception:: error
|
|
|
|
|
|
|
|
This exception is raised on all errors, such as unknown number of bits per
|
|
|
|
pixel, etc.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: crop(image, psize, width, height, x0, y0, x1, y1)
|
|
|
|
|
|
|
|
Return the selected part of *image*, which should be *width* by *height* in size
|
|
|
|
and consist of pixels of *psize* bytes. *x0*, *y0*, *x1* and *y1* are like the
|
|
|
|
:func:`gl.lrectread` parameters, i.e. the boundary is included in the new image.
|
|
|
|
The new boundaries need not be inside the picture. Pixels that fall outside the
|
|
|
|
old image will have their value set to zero. If *x0* is bigger than *x1* the
|
|
|
|
new image is mirrored. The same holds for the y coordinates.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: scale(image, psize, width, height, newwidth, newheight)
|
|
|
|
|
|
|
|
Return *image* scaled to size *newwidth* by *newheight*. No interpolation is
|
|
|
|
done, scaling is done by simple-minded pixel duplication or removal. Therefore,
|
|
|
|
computer-generated images or dithered images will not look nice after scaling.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: tovideo(image, psize, width, height)
|
|
|
|
|
|
|
|
Run a vertical low-pass filter over an image. It does so by computing each
|
|
|
|
destination pixel as the average of two vertically-aligned source pixels. The
|
|
|
|
main use of this routine is to forestall excessive flicker if the image is
|
|
|
|
displayed on a video device that uses interlacing, hence the name.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: grey2mono(image, width, height, threshold)
|
|
|
|
|
|
|
|
Convert a 8-bit deep greyscale image to a 1-bit deep image by thresholding all
|
|
|
|
the pixels. The resulting image is tightly packed and is probably only useful
|
|
|
|
as an argument to :func:`mono2grey`.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: dither2mono(image, width, height)
|
|
|
|
|
|
|
|
Convert an 8-bit greyscale image to a 1-bit monochrome image using a
|
|
|
|
(simple-minded) dithering algorithm.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: mono2grey(image, width, height, p0, p1)
|
|
|
|
|
|
|
|
Convert a 1-bit monochrome image to an 8 bit greyscale or color image. All
|
|
|
|
pixels that are zero-valued on input get value *p0* on output and all one-value
|
|
|
|
input pixels get value *p1* on output. To convert a monochrome black-and-white
|
|
|
|
image to greyscale pass the values ``0`` and ``255`` respectively.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: grey2grey4(image, width, height)
|
|
|
|
|
|
|
|
Convert an 8-bit greyscale image to a 4-bit greyscale image without dithering.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: grey2grey2(image, width, height)
|
|
|
|
|
|
|
|
Convert an 8-bit greyscale image to a 2-bit greyscale image without dithering.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: dither2grey2(image, width, height)
|
|
|
|
|
|
|
|
Convert an 8-bit greyscale image to a 2-bit greyscale image with dithering. As
|
|
|
|
for :func:`dither2mono`, the dithering algorithm is currently very simple.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: grey42grey(image, width, height)
|
|
|
|
|
|
|
|
Convert a 4-bit greyscale image to an 8-bit greyscale image.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: grey22grey(image, width, height)
|
|
|
|
|
|
|
|
Convert a 2-bit greyscale image to an 8-bit greyscale image.
|
|
|
|
|
|
|
|
|
|
|
|
.. data:: backward_compatible
|
|
|
|
|
|
|
|
If set to 0, the functions in this module use a non-backward compatible way
|
|
|
|
of representing multi-byte pixels on little-endian systems. The SGI for
|
|
|
|
which this module was originally written is a big-endian system, so setting
|
|
|
|
this variable will have no effect. However, the code wasn't originally
|
|
|
|
intended to run on anything else, so it made assumptions about byte order
|
|
|
|
which are not universal. Setting this variable to 0 will cause the byte
|
|
|
|
order to be reversed on little-endian systems, so that it then is the same as
|
|
|
|
on big-endian systems.
|
|
|
|
|