A Python module to create and apply filters to images.
Project description
FImage
A Python module to apply and create multiples filters to images.
You need to be using Python 3.6 or greater to be able to use FImage.
Installation
pip install fimage
Example
A Simple filter
Create a file app.py with:
from fimage import FImage
from fimage.filters import Sepia
def main():
# replace 'my_picture.jpg' with the path to your image
image = FImage('my_picture.jpg')
# apply the Sepia filter to the image
image.apply(Sepia(90))
# save the image with the applied filter
image.save('my_picture_sepia.jpg')
if __name__ == "__main__":
main()
Now, just run it :
python app.py
This is my_picture.jpg before the filter was applied
And this is how new image my_picture_sepia.jpg looks like after the filter was applied
Note: 90 represents the adjustment value we want to use for applying a sepia tone to this picture, lower values will result an image with less sepia tone while higher values will give us an image with a notorious sepia tone.
Most of the filters FImage offers will need an adjustment value to be passed.
Applying multiple filters
FImage offers more filters besides the Sepia one, even you can combine multiples filters to give a better look to your picture.
Modify the file app.py to import more filters from FImage
from fimage import FImage
from fimage.filters import Contrast, Brightness, Saturation
def main():
image = FImage('my_picture.jpg')
# apply the mutiple filters to the image
image.apply(
Saturation(20),
Contrast(25),
Brightness(15)
)
# save the image with the applied filter
image.save('my_picture_mixed.jpg')
if __name__ == "__main__":
main()
We run it by
python app.py
And our new my_picture_mixed.jpg looks like
The order in which the filters are passed to the apply function matters, this is because the filters are applied in a sequential manner, so the next filter will be applied over the resultant image from the previous one.
Currently FImage supports the following filters:
- FillColor
- Sepia
- Contrast
- Brightness
- Saturation
- Vibrance
- Grayscale
- Hue
- Colorize
- Invert
- Gamma
- Noise
- Clip
- Exposure
Presets
Presets are just the combinations of multiple filters with already defined adjustment values.
Let’s change our app.py one more time to use the Presets
from fimage import FImage
from fimage.presets import SinCity
def main():
# replace 'my_picture.jpg' with the path to your image
image = FImage('my_picture.jpg')
# apply the SinCity preset to the image
image.apply(SinCity())
# save the image with the applied preset
image.save('my_picture_sincity.jpg')
if __name__ == "__main__":
main()
After we run it, we get our new my_picture_sincity.jpg
Currently supported Presets:
- SinCity
- OrangePeel
- Love
Custom Presets
If you like the look your picture got after testing different filters and want to store this combination for applying it to more pictures, you can create your own Preset by just extending the Preset Class and specifying these filters and their adjust values in it.
In our app.py let’s do
from fimage import FImage
from fimage.presets import Preset
from fimage.filters import Contrast, Brightness, Saturation
# Create my custom preset and specify the filters to apply
class MyOwnPreset(Preset):
transformations = [
Contrast(30),
Saturation(50),
Brightness(10),
]
def main():
# replace 'my_picture.jpg' with the path to your image
image = FImage('my_picture.jpg')
# apply MyOwnPreset to the image
image.apply(MyOwnPreset())
# save the image with the applied preset
image.save('my_picture_custom.jpg')
if __name__ == "__main__":
main()
The new my_picture_custom.jpg
Now, in this way MyOwnPreset has the combination of filters you like and you can use to modify more pictures.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fimage-0.1.5.tar.gz.
File metadata
- Download URL: fimage-0.1.5.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.9.0 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34fa03e80010bfe46db1cf919a6f41b3a6f8b01e1c4819ae04cc006454e2b359
|
|
| MD5 |
824f198213a4e791ef6c722658ffdbe9
|
|
| BLAKE2b-256 |
520405877d9b069c5088723980ec96d2a2441beb88a358924c9029b46598e789
|
File details
Details for the file fimage-0.1.5-py3-none-any.whl.
File metadata
- Download URL: fimage-0.1.5-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.12 CPython/3.9.0 Windows/10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d04ddc6331033f9e75b1e848ec6274031853ae6d2792102ee295d82822b5d18
|
|
| MD5 |
b58532c47e61ab66a02d59773947b3b4
|
|
| BLAKE2b-256 |
99bd1852009cc0747baee9fcf0bab016fbb2cd03ab47ae3f727d7d947ea1ff11
|