floatimg | ||
tests | ||
.gitignore | ||
README.md | ||
requirements-devel.txt |
python-FloatImg
A pythonesque binding to FloatImg library available at https://git.tetalab.org/tTh/FloatImg
python-FloatImg requires a Python 3 implementation (tested with 3.6.9).
Most function are wrapped into a similar api, sometime with a more consistent naming and an object-oriented approach.
Color values are specified using triplets of float values, like (128.5, 34.234, 242.23).
Installation
python-FloatImg requires a shared object file (.so) that is not yet officialy available from FloatImg.
The file floatimg/settings.py
contains the path to the .so file.
Usage
The FloatImg class encapsulate core and file functionnalities of FloatImg library. Import if from the main module:
import floatimg
Image creation
FloatImg
has two class methods to create an image.
img = floatimg.create(640, 480, floatimg.RGB)
Or use the create_rgb
shortcut:
img = floatimg.create_rgb(640, 480)
Note that calling the destroy
method of the instance is not necessary as it will be called automatically at instance destruction.
Or completely duplicate an existing image:
# without copying data
new_img = img.clone()
# with copying data
new_img = img.clone(True)
Image manipulation
Clear image
Reset all pixels to zero.
img.clear()
Copy pixels to another image
img.copy_data(another_img)
Set pixel value
img.put(x, y, (r, g, b))
Get pixel value
color = (r, g, b) = img.get(x, y)
File manipulation
Dump image to file
img.dump("/tmp/image_dump")
Restore image data from a dump file
img.load("/tmp/image_dump")
Create a new image from a dump file
img = floatimg.create_from_dump("/tmp/image_dump")
Get dump metadata
TODO create a FileInfo named tuple.
witdh, height, img_type = floatimg.fileinfos("/tmp/image_dump")
Operators
# addition
res_img = img + img2
# substraction
res_img = img - img2
# multiplication
res_img = img * img2
# min value per color channel
res_img = img.min(img2)
# max value per color channel
res_img = img.max(img2)
Development
Run tests
Install development requirements (you may add --user if not in a virtual environment or not in system-wide install):
pip install -r requirements-devel.txt
Ensure floatimg
containing path is in the PYTHONPATH
, this will run the tests and show a coverage report:
pytest --cov=floatimg tests/*