110 lines
2.0 KiB
Markdown
110 lines
2.0 KiB
Markdown
# python-FloatImg
|
|
|
|
A pythonesque binding to FloatImg library available at https://git.tetalab.org/tTh/FloatImg
|
|
|
|
python-FloatImg requires a quite recent Python 3 implementation (tested with 3.6.9).
|
|
|
|
## 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:
|
|
|
|
```python
|
|
from floatimg import FloatImg
|
|
```
|
|
|
|
### Image creation
|
|
|
|
`FloatImg` has two class methods to create an image.
|
|
|
|
```python
|
|
img = FloatImg.create(640, 480, FloatImg.RGB)
|
|
```
|
|
Or use the `create_rgb` shortcut:
|
|
|
|
```python
|
|
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:
|
|
|
|
```python
|
|
new_img = img.clone()
|
|
```
|
|
|
|
### Image manipulation
|
|
|
|
#### Clear image
|
|
|
|
```python
|
|
img.clear()
|
|
```
|
|
|
|
#### Copy pixels to another image
|
|
|
|
```python
|
|
img.copy_data(another_img)
|
|
```
|
|
|
|
#### Set pixel value
|
|
|
|
```python
|
|
img.put_rgb(x, y, (r, g, b))
|
|
```
|
|
|
|
#### Get pixel value
|
|
|
|
```python
|
|
r, g, b = img.get_rgb(x, y)
|
|
```
|
|
|
|
### File manipulation
|
|
|
|
#### Dump image to file
|
|
|
|
```python
|
|
img.dump_to_file("/tmp/image_dump")
|
|
```
|
|
|
|
#### Restore image data from a dump file
|
|
|
|
```python
|
|
img.load_from_dump("/tmp/image_dump")
|
|
```
|
|
|
|
#### Create a new image from a dump file
|
|
|
|
```python
|
|
img = FloatImg.create_from_dump("/tmp/image_dump")
|
|
```
|
|
#### Get dump metadata
|
|
|
|
```python
|
|
witdh, height, img_type = FloatImg.fileinfos("/tmp/image_dump")
|
|
```
|
|
|
|
|
|
## 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/*
|
|
```
|
|
|