Small Python library with a single purpose to apply fast blur to PNG images (libpng backend)
Project description
pyfastblur
Small Python library with a single purpose to apply fast blur to PNG images (libpng backend)
Install
Windows: python -m pip install pyfastblur
Linux:
git clone https://github.com/sertraline/pyfastblur && cd pyfastblur
python3 setup.py build bdist_wheel
cd dist && python3 -m pip install ./pyfastblur*.whl
Usage
# example 1
import pyfastblur
result = pyfastblur.blur("path/to/file.png", radius=24)
# example 2
result = pyfastblur.blur("path/to/file.png",
radius=24,
enable_gaussian=True)
# enable_gaussian processes the image with gaussian blur instead of box blur (slower)
# example 3
from io import BytesIO
# read image into memory object
obj = BytesIO()
with open("test.png", 'rb') as f:
obj.write(f.read())
# rewind
obj.seek(0)
result = pyfastblur.blur(obj, radius=24)
# write result to file
with open("output.png", 'wb') as f:
f.write(result.read())
Speed
Sample image: link (3.55MB)
Code:
import pyfastblur
import time
from io import BytesIO
runs = 6
average = 0.0
for i in range(runs):
start = time.time()
# read image into memory object
obj = BytesIO()
with open("test.png", 'rb') as f:
obj.write(f.read())
# rewind
obj.seek(0)
# output: BytesIO object
out = pyfastblur.blur(obj, radius=64)
# write to file
with open("output.png", 'wb') as f:
f.write(out.read())
average += (time.time() - start)
average = average / runs
print("Average runtime: %s seconds" % str(average))
Result (Windows): Average runtime: 0.5009152094523112 seconds
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pyfastblur-1.3.tar.gz
(353.4 kB
view details)
Built Distribution
File details
Details for the file pyfastblur-1.3.tar.gz
.
File metadata
- Download URL: pyfastblur-1.3.tar.gz
- Upload date:
- Size: 353.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | abb0c023372c2f8235b6552448ad518f67c5e83cd8e62721e4cceb92b9e91692 |
|
MD5 | fc632e2f2f6594bb62b672acdffcae4b |
|
BLAKE2b-256 | b6b42c511cc793ff65693e9aa9e3407f4aa705d4aa5e9f2824f84980a3397059 |
File details
Details for the file pyfastblur-1.3-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: pyfastblur-1.3-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 521.1 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.58.0 CPython/3.9.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36dab684fbedfc2f6d12d380c6d7ff70689312638ea54afe0a93dbe0780d1cb5 |
|
MD5 | 693affba2ecc1899dd588c55c42c7d69 |
|
BLAKE2b-256 | abfc598ddc0045b3ab3e2e0c5b0506f26594c0eda947a42748d137e1793fb732 |