Skip to main content

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 hashes)

Uploaded Source

Built Distribution

pyfastblur-1.3-cp39-cp39-win_amd64.whl (521.1 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page