Compare commits
2 Commits
fbea9488f0
...
2342a9e2a8
Author | SHA1 | Date | |
---|---|---|---|
2342a9e2a8 | |||
4b57a41705 |
19
README.md
19
README.md
@ -49,7 +49,7 @@ new_img = img.clone()
|
|||||||
new_img = img.clone(True)
|
new_img = img.clone(True)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Basic pixel manipulation
|
### Basic pixel operations
|
||||||
|
|
||||||
```python
|
```python
|
||||||
# Get pixel value
|
# Get pixel value
|
||||||
@ -65,7 +65,7 @@ img.clear()
|
|||||||
img.copy_data(another_img)
|
img.copy_data(another_img)
|
||||||
```
|
```
|
||||||
|
|
||||||
### File manipulation
|
### File operations
|
||||||
|
|
||||||
#### Raw dump files
|
#### Raw dump files
|
||||||
|
|
||||||
@ -135,3 +135,18 @@ Ensure `floatimg` containing path is in the `PYTHONPATH`, this will run the test
|
|||||||
pytest --cov=floatimg tests/*
|
pytest --cov=floatimg tests/*
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Status
|
||||||
|
|
||||||
|
The goal is not to bind all the functions but essential ones too build a front-end with python-tkinter.
|
||||||
|
|
||||||
|
#### Done
|
||||||
|
|
||||||
|
- lib/fimg-core.c
|
||||||
|
- lib/fimg-file.c
|
||||||
|
- lib/operator.c
|
||||||
|
- funcs/exporter.c
|
||||||
|
- funcs/fimg-png.c
|
||||||
|
|
||||||
|
#### Partial
|
||||||
|
|
||||||
|
- lib/fimg-math.c
|
@ -176,6 +176,9 @@ c_fimg_load_from_png = LIB.fimg_load_from_png
|
|||||||
c_fimg_load_from_png.argtypes = (ct.c_char_p, ct.POINTER(C_FloatImg))
|
c_fimg_load_from_png.argtypes = (ct.c_char_p, ct.POINTER(C_FloatImg))
|
||||||
c_fimg_load_from_png.restype = ct.c_int
|
c_fimg_load_from_png.restype = ct.c_int
|
||||||
|
|
||||||
|
c_fimg_get_maxvalue = LIB.fimg_get_maxvalue
|
||||||
|
c_fimg_get_maxvalue.argtypes = (ct.POINTER(C_FloatImg),)
|
||||||
|
c_fimg_get_maxvalue.restype = ct.c_float
|
||||||
|
|
||||||
############################################################################################################
|
############################################################################################################
|
||||||
class FloatImg:
|
class FloatImg:
|
||||||
@ -316,15 +319,16 @@ class FloatImg:
|
|||||||
"""return a new image with minimum pixel values per channel between current and parameter"""
|
"""return a new image with minimum pixel values per channel between current and parameter"""
|
||||||
res = self.clone(False)
|
res = self.clone(False)
|
||||||
# C code inverts comparison
|
# C code inverts comparison
|
||||||
assert c_fimg_maximum(self.c_img_p, img.c_img_p, res.c_img_p) == 0
|
assert c_fimg_minimum(self.c_img_p, img.c_img_p, res.c_img_p) == 0
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
||||||
#######################################################################################################
|
#######################################################################################################
|
||||||
def max(self, img):
|
def max(self, img):
|
||||||
"""return a new image with maximum pixel values per channel between current and parameter"""
|
"""return a new image with maximum pixel values per channel between current and parameter"""
|
||||||
res = self.clone(False)
|
res = self.clone(False)
|
||||||
# C code inverts comparison
|
# C code inverts comparison
|
||||||
assert c_fimg_minimum(self.c_img_p, img.c_img_p, res.c_img_p) == 0
|
assert c_fimg_maximum(self.c_img_p, img.c_img_p, res.c_img_p) == 0
|
||||||
return res
|
return res
|
||||||
|
|
||||||
#######################################################################################################
|
#######################################################################################################
|
||||||
@ -337,6 +341,11 @@ class FloatImg:
|
|||||||
== 0
|
== 0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
#######################################################################################################
|
||||||
|
def maxvalue(self):
|
||||||
|
"""return the maximum value for any channel in the image"""
|
||||||
|
return c_fimg_get_maxvalue(self.c_img_p)
|
||||||
|
|
||||||
|
|
||||||
###########################################################################################################
|
###########################################################################################################
|
||||||
def fileinfos(fname):
|
def fileinfos(fname):
|
||||||
|
12
tests/maths.py
Normal file
12
tests/maths.py
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
"""test of core functions """
|
||||||
|
|
||||||
|
import floatimg
|
||||||
|
|
||||||
|
def test_maxvaalue():
|
||||||
|
width = 5
|
||||||
|
height = 5
|
||||||
|
|
||||||
|
img = floatimg.create_rgb(width, height)
|
||||||
|
color = (255.0, 255.0, 255.0)
|
||||||
|
img.put(2,2, color)
|
||||||
|
assert img.maxvalue() == 255.0
|
Loading…
Reference in New Issue
Block a user