PEL is an open source project (MIT License) written in python containing
special effects, image processing tools and game methods to be use in
addition to PYGAME library.
Amongst the image processing tools, PEL contains the following methods:
Sobel, Feldman, Canny filter, Prewit algorithms, Gaussian blur and image
sharpening tools, Sepia, Grayscale, Hue shift, control over the luminescence
and saturation.
By default, PEL will works with the following file extensions (if pygame is
built with full image support):
JPG, PNG, GIF (non-animated), BMP, PCX,
TGA (uncompressed), TIFF, LBM, PBM, XPM
Saving images only supports a limited set of formats:
BMP, TGA, PNG, JPEG
PEL was originally written in python then ported into CYTHON and C programming
language to increase overall performances to allow real time rendering.
Most of PEL algorithms are iterating over all the surface’s pixels to apply
transformations (raster type images).
As a result, processing large image sizes will have a significant impact on
the total processing time.
You can boost the overall performances by setting a variable to use
multiprocessing before compiling the project. This will enable full potential
of multiprocessing (OPENMP, open multiprocessing programming) when using PEL
tools.
It is highly recommended to use the multi-processing option if your CPU has
at least 8 threads (most of the threads will be used intensively during image
processing) leaving your system slightly un-responsive if the number of threads
is not high enough.
If you are using PEL for image processing you can safely set the variable
to use multiprocessing capabilities to modify images as quick as possible.