Skip to main content

Encrypted Image Watermark Injector / Validator

Project description

Pixseal

Prove what you published — and what you didn’t.

Pixseal is a Python-based image integrity and authenticity verification tool designed to detect whether an image has been modified since signing.

Pixseal embeds a cryptographically verifiable integrity seal into an image in an invisible manner. During verification, any modification — including editing, filtering, cropping, resizing, re-encoding — will cause verification to immediately fail.

If even a single pixel is altered after signing, Pixseal will detect it.

Pixseal is not a visual watermarking or branding tool.
The watermark exists solely as a means to achieve strict, deterministic image tamper detection. Pixseal prioritizes tamper sensitivity over robustness against intentional adversarial manipulation.

Features

  • Image Integrity Verification

    • Cryptographically proves that an image remains in its original, unmodified state
    • Detects single-pixel changes with deterministic verification results
  • Tamper Detection

    • Detects all forms of image modification, including:
      • editing
      • filters and color adjustments
      • cropping and resizing
      • re-encoding and recompression
      • pixel-level changes
  • Invisible Integrity Seal

    • Embeds verification data without any visible watermark
    • Preserves the original visual appearance of the image
  • RSA-Based Encryption (Optional)

    • Supports RSA public/private key encryption for embedded verification data
    • Allows separation of signing and verification roles
  • Verification & Extraction

    • Payloads may be partially or fully extractable even after modification
    • Automatically fails verification when tampering is detected
  • Fully Local & Offline

    • No external servers or network dependencies
    • Pure Python implementation
  • Lossless Format Support

    • Supports PNG and BMP (24-bit) images
    • Lossy formats (e.g., JPEG, WebP) are intentionally excluded to preserve integrity guarantees

Installation

pip install Pixseal
# or for local development
pip install -e ./pip_package

Python 3.8+ is required. Wheels published to PyPI already include the compiled Cython extension, so pip install Pixseal automatically selects the right build for your operating system and CPU.

Building from a git clone

If you cloned the repository (or downloaded the source), run the included build script to create a wheel/SDist tailored to your environment:

git clone https://github.com/kyj9447/Pixseal.git
cd Pixseal
python3 -m pip install -r requirements.txt
./build.sh
# Install the freshly built wheel (optional)
python3 -m pip install pip_package/dist/Pixseal-*.whl

Even after running python3 -m pip install -r requirements.txt you still need a working C toolchain (gcc) and the Python development headers exposed via python3-config; these come from your OS packages, not pip.

build.sh invokes Cython and gcc (via python3-config) before producing the wheel/sdist artifacts. Ensure cython, build, and a working C toolchain are installed. If you skip this step, Pixseal falls back to the pure Python implementation, which works but is significantly slower.

Usage

Sign an image

from Pixseal import signImage

result = signImage(
    imageInput="assets/original.png",  # accepts a file path or raw PNG/BMP bytes
    hiddenString="!Validation:kyj9447@mailmail.com",
    publicKeyPath="assets/RSA/public_key.pem",  # omit for plain-text embedding
)
result.save("assets/signed_original.png")
  • The payload is looped if it runs out before the image ends, so even small files carry the full sentinel/payload/end pattern.
  • When publicKeyPath is omitted, the payload remains plain text.

Validate and (optionally) decrypt

from Pixseal import validateImage

report = validateImage(
    imageInput="assets/signed_original.png",  # accepts a file path or raw PNG/BMP bytes
    privKeyPath="assets/RSA/private_key.pem",  # omit for plain-text payloads
)

print(report["extractedString1"])
print(report["validationReport"])

validateImage returns:

{
    "extractedString1": "<payload or encrypted blob>",
    "extractedString2": "<truncated payload or encrypted blob>",
    "validationReport": {
        "arrayLength": 4,
        "lengthCheck": True,
        "startCheck": True,
        "endCheck": True,
        "isDecrypted": True,
        "tailCheckResult": True,
        "verdict": True,
        # decryptSkipMessage when a decrypt request was skipped
    }
}

CLI demo script

python testRun.py offers an interactive flow:

  1. Choose 1 to sign an image. It reads assets/original.png, asks for a payload (default !Validation:kyj9447@mailmail.com), optionally encrypts with assets/RSA/public_key.pem, and writes assets/signed_<name>.png.
  2. Choose 2 to validate. It reads assets/signed_original.png, optionally decrypts with assets/RSA/private_key.pem, and prints both the extracted string and verdict.
  3. Choose 3 to benchmark performance. It reads assets/original.png, encrypts it with assets/RSA/public_key.pem, and writes assets/signed_original.png, printing the elapsed signing time. Then it reads assets/signed_original.png, performs extraction/decryption/validation, and prints the elapsed validation time along with the total elapsed time.
  4. Choose 4 to test signing and validation with file-path input option.
  5. Choose 5 to test signing and validation with byte-stream input option.
  6. Choose 6 to run the optional line-profiler demo. It benchmarks signImage and validateImage, printing per-line timings when the script is executed through kernprof.

Option 6 requires the optional dependency line_profiler and must be run via kernprof -l testRun.py so that builtins.profile is provided. Without line_profiler installed the script will continue to work, but the profiling option will display an informative message instead of running.

Key management

Generate a test RSA pair (PKCS#8) with OpenSSL:

openssl genpkey -algorithm RSA -out assets/RSA/private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in assets/RSA/private_key.pem -out assets/RSA/public_key.pem

Point publicKeyPath / privKeyPath to these files.

API reference

Function Description
signImage(imageInput, hiddenString, publicKeyPath=None) Loads a PNG/BMP from a filesystem path or raw bytes, injects hiddenString plus sentinels, encrypting each chunk when publicKeyPath is provided. Returns a SimpleImage that you can save() or saveBmp().
validateImage(imageInput, privKeyPath=None) Reads the hidden bit stream from a path or raw bytes, splits by newlines, deduplicates, optionally decrypts each chunk (Base64 indicates ciphertext), and returns the payload plus a validation report.

Examples

Original Signed (!Validation:kyj9447@mailmail.com)

Validation output excerpt:

[Validate] verdict: True
[Validate] extracted string: !Validation:kyj9447@mailmail.com
[Validate] decrypted with private key: RSA/private_key.pem

Validation Report

{'extractedString1': '!Validation:kyj9447@mailmail.com',
 'extractedString2': 'DMnWAzbd6NFycGAxcPkzzmGjL33WXovG...',
 'validationReport': {'arrayLength': 4,
                      'endCheck': True,
                      'isDecrypted': True,
                      'lengthCheck': True,
                      'startCheck': True,
                      'tailCheckResult': True,
                      'verdict': True}}

(When encrypted, each line appears as Base64 until decrypted with the RSA private key.)

Corrupted after signing

Validation output excerpt:

...
string argument should contain only ASCII characters
string argument should contain only ASCII characters
string argument should contain only ASCII characters
[Validate] verdict: False
[Validate] extracted string: !Validation:kyj9447@mailmail.com
[Validate] decrypted with private key: RSA/private_key.pem

Validation Report

{'extractedString1': '!Validation:kyj9447@mailmail.com',
 'extractedString2': 'hh78IWEsRgfTWMw3Rg02hTnCdErjx0O4...',
 'validationReport': {'arrayLength': 400,
                      'decryptSkipMessage': 'Skip decrypt: payload was plain '
                                            'or corrupted text despite decrypt '
                                            'request.',
                      'endCheck': True,
                      'isDecrypted': True,
                      'lengthCheck': False,
                      'startCheck': True,
                      'tailCheckResult': 'Not Required',
                      'verdict': False}}

Related projects

https://github.com/kyj9447/imageSignerCamera

  • Mobile camera that signs images on capture:
  • Server-side validator that decrypts and verifies payloads.

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

pixseal-0.2.1.post2.tar.gz (15.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pixseal-0.2.1.post2-pp310-pypy310_pp73-win_amd64.whl (100.5 kB view details)

Uploaded PyPyWindows x86-64

pixseal-0.2.1.post2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (120.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (122.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-pp39-pypy39_pp73-win_amd64.whl (100.5 kB view details)

Uploaded PyPyWindows x86-64

pixseal-0.2.1.post2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (120.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (122.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-pp38-pypy38_pp73-win_amd64.whl (100.0 kB view details)

Uploaded PyPyWindows x86-64

pixseal-0.2.1.post2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (127.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (128.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-cp313-cp313-win_amd64.whl (108.8 kB view details)

Uploaded CPython 3.13Windows x86-64

pixseal-0.2.1.post2-cp313-cp313-win32.whl (91.3 kB view details)

Uploaded CPython 3.13Windows x86

pixseal-0.2.1.post2-cp313-cp313-musllinux_1_2_x86_64.whl (766.0 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixseal-0.2.1.post2-cp313-cp313-musllinux_1_2_i686.whl (734.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

pixseal-0.2.1.post2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (744.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (702.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-cp312-cp312-win_amd64.whl (108.9 kB view details)

Uploaded CPython 3.12Windows x86-64

pixseal-0.2.1.post2-cp312-cp312-win32.whl (91.5 kB view details)

Uploaded CPython 3.12Windows x86

pixseal-0.2.1.post2-cp312-cp312-musllinux_1_2_x86_64.whl (768.9 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixseal-0.2.1.post2-cp312-cp312-musllinux_1_2_i686.whl (739.3 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

pixseal-0.2.1.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (746.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (705.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-cp311-cp311-win_amd64.whl (109.1 kB view details)

Uploaded CPython 3.11Windows x86-64

pixseal-0.2.1.post2-cp311-cp311-win32.whl (92.1 kB view details)

Uploaded CPython 3.11Windows x86

pixseal-0.2.1.post2-cp311-cp311-musllinux_1_2_x86_64.whl (807.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixseal-0.2.1.post2-cp311-cp311-musllinux_1_2_i686.whl (778.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

pixseal-0.2.1.post2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (780.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (742.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-cp310-cp310-win_amd64.whl (109.1 kB view details)

Uploaded CPython 3.10Windows x86-64

pixseal-0.2.1.post2-cp310-cp310-win32.whl (92.7 kB view details)

Uploaded CPython 3.10Windows x86

pixseal-0.2.1.post2-cp310-cp310-musllinux_1_2_x86_64.whl (766.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixseal-0.2.1.post2-cp310-cp310-musllinux_1_2_i686.whl (743.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

pixseal-0.2.1.post2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (738.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (703.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-cp39-cp39-win_amd64.whl (109.5 kB view details)

Uploaded CPython 3.9Windows x86-64

pixseal-0.2.1.post2-cp39-cp39-win32.whl (92.9 kB view details)

Uploaded CPython 3.9Windows x86

pixseal-0.2.1.post2-cp39-cp39-musllinux_1_2_x86_64.whl (762.8 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pixseal-0.2.1.post2-cp39-cp39-musllinux_1_2_i686.whl (741.3 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

pixseal-0.2.1.post2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (734.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (700.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

pixseal-0.2.1.post2-cp38-cp38-win_amd64.whl (110.0 kB view details)

Uploaded CPython 3.8Windows x86-64

pixseal-0.2.1.post2-cp38-cp38-win32.whl (93.8 kB view details)

Uploaded CPython 3.8Windows x86

pixseal-0.2.1.post2-cp38-cp38-musllinux_1_2_x86_64.whl (785.1 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

pixseal-0.2.1.post2-cp38-cp38-musllinux_1_2_i686.whl (760.5 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

pixseal-0.2.1.post2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (768.7 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pixseal-0.2.1.post2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (729.1 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686manylinux: glibc 2.5+ i686

File details

Details for the file pixseal-0.2.1.post2.tar.gz.

File metadata

  • Download URL: pixseal-0.2.1.post2.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.1.post2.tar.gz
Algorithm Hash digest
SHA256 626bd5ac0d190d0223b131e7fa2e309395443bde28352331cedd22f82a854554
MD5 0c0267cb3087ae395e3732cf69e1fec6
BLAKE2b-256 83cbe89219fb23fb091dace8806d32a83631f74f8ab58cb8723d96493f1735a4

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 c18de3c842dc4ac090cc2df55834f616a973fd7ae30e08544bf9328691ff8c1f
MD5 0b2b7434d209c112224b8eff168ddc05
BLAKE2b-256 382cdd04c2901646860f8fe61b74f93cb53e940251af74a4ec38d7358a941b7b

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb175c8ff687e8316702bf79703e9ca4a1d49feedfa049570ffdeddb0ecec444
MD5 0f78c3c1f430b18224dab399a838a4cf
BLAKE2b-256 8becbd02384fce5476d5a54f96c11260677c6d61b124f6814b8940db597d5b3e

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f9787859a58cc228627f740d8ca69f4e4797c0ba5849b418f79434843c24fb08
MD5 13a1c5007272baf57733ccc00b347f82
BLAKE2b-256 4158107d7cf819272b756f5db7df3d61c4ba0f7c57d5105dee545a7fddb78c41

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 ae06792448b9bd9f8c38c15d636a404a5e6c6aa5816bdd73cdd398529a56b14b
MD5 c0303715b7ee13844e3286a375b97587
BLAKE2b-256 b8f620523cc4c312890adada0c4bc883a10617bb42e1f373a15e0423995c10e8

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e13c034720d07ebc6432021ea42027c0168cd1db54a848c54918c6badffc3d0a
MD5 3bd764ae55911f61295e5d72501aa270
BLAKE2b-256 8b101c43b7c44ebed3ce597811706b9a0701cf94520328b5155f943464250b9a

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 aa959d0093938a0142d3a81d65551f235dadab917ed16c4711249e2e342e983d
MD5 76ff1053336cc95a02505a3936eff41f
BLAKE2b-256 e409abf6dfb811cdb922c41e968caf6ed86a4bde67544e12528b6adb8cc42189

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 fe4bcfcc7bed15f701b631b66d0c143f7e73e02e23e6fd387d01119cd731c4ba
MD5 44179d18a463f442648620f3f8beb408
BLAKE2b-256 e7bd11e6286c9efc748de04b28ee40d38273086132b34f7e1fd598b7d104b5d1

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0f97cef34566a79df151c31d40a3f7a7f49072c434d43d22b4a7abcaa47e7f4c
MD5 8fbdb586f4e0c84b590ac053b2003880
BLAKE2b-256 8f48ff30286ee0630540a7f40846cef426ee9df66e2aaf5a47d925a29da0bbe0

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2c1049fa11b94e6b482571b2826a7d7b6609b439c7d36f113dacccf30caa2b24
MD5 96396e5e924bbfb9e37b4e57000e87eb
BLAKE2b-256 20fcbf91ba6f37ab3e00a7e2e814f96176e0e9cbf3383e7953ddcf7bd1eefd35

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 8fed32b556c6e5a0844b146356eb04f75c7b4857c9a119cf2f3858509ccf7c4e
MD5 d4f7cd3e933520df29152e201f0536ae
BLAKE2b-256 2709458138ca344620a77164dd4aa3f81abe503f8b057008266b68e7630fb400

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp313-cp313-win32.whl.

File metadata

  • Download URL: pixseal-0.2.1.post2-cp313-cp313-win32.whl
  • Upload date:
  • Size: 91.3 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.1.post2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 8ebdc26da846e36f3394f3dd61323ae30c38aecab41daded4e2bbfaedd4486e6
MD5 a30334a9a6f0e0d7dcc528db9dd3ada5
BLAKE2b-256 398d6795d797aa54fc5e19a6c393a7245beb823a75faa9160846317109a81686

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 80de24339fc41cf3eb40a77d2eb797e673916f6f02df19d012f275e23accd90e
MD5 6adb96f6555411c0f65778949c56b129
BLAKE2b-256 996ca8e6a6efefb42fefa5d7ac493d9867bc663b435bab2477e903ddae373dfe

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bca7cd9ebc86af999b4927e41b87107abde3d5559b4da14529e639aaa8c78ef3
MD5 b7a5ac838a4ba019c8aa87e6bca4df62
BLAKE2b-256 eb95b58621686addab9804f79cf8ccd3115b8c9d84b5e89c14c9df7b660c1f5f

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5dfa385490f0f36210711ce6a4ba73fbbf92367252034a89650200569fde922
MD5 70866bc4a42c8486da555e04aea779f8
BLAKE2b-256 1fbcd8329a2120ab5cb5e515b1bdc5f9c1d1de64d078d7d546441bfaf8d2bf5d

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e613cbc7329270c1f3efa6163c12ab92485f884d3aa378b7a06459884012a94c
MD5 9247b83f8441c8028bb4e5a9723aebd8
BLAKE2b-256 92e52f226d834ee4fc65246a6df3733a81b56562163263cababb509bd48892c9

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 683f189a79f1f06c525809686db80fe6579666e3dff9ad4105d7c87cf0f1c09f
MD5 6eb14fe010131ee91380b247ebc2abdb
BLAKE2b-256 70366a4b8e15356c89ed612846f9ebc1988926ff0640ff4c6c0286483afc1f9c

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp312-cp312-win32.whl.

File metadata

  • Download URL: pixseal-0.2.1.post2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 91.5 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.1.post2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 731e3d7d84d7d2daca9ec86c4122bfbd22b17522d847c51ed90ab4ff14d109ac
MD5 b801f664b79ad5b2d1c363223c13e682
BLAKE2b-256 82c41237b1e2c5db55f67a2773cbbd07a65ee4ff1dbab40458352d11db16c829

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e0b679f7268b9efd521fbc44cd816e78139b77c3e48014859cb9d62e0c2001a9
MD5 ce0e9f8a2be210d2bd740010c18bc050
BLAKE2b-256 5ba88239f982b1af34c5d74441edaeeb242dd5542dea0b37ff99a402f6f56052

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 6f52bcd1f4fee86122f5a62e091afde12d76f85942a45336291bf8831cb983fe
MD5 07db6df6de52d7ce2fca3192c1f57e50
BLAKE2b-256 9123410d387a9522d30dc3186ef8a4b0052836bf856f0235c34a70471863911e

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8dc816af523a138f62a12164394401b5111416ba26676dec172b74cbac054e45
MD5 9722a3a4694c98f0a609f54237f09391
BLAKE2b-256 a977ba7e442a524bcf83eac1debdfd082e57897457d2c6413073377dae5dfbdb

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ccaead59543427052a378a679204f102421fb7637679397da7ee5f412e4b3609
MD5 fb7e507335c0284bbbe30f132f26b5e5
BLAKE2b-256 bcb7123642ddd643d12e60b3a486d14fa4329cd97f7489bd12a36687f035d55b

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 4c25ea58683681aea52c0e7be3d5e1b22ba4d689586ad8bc588306ef6da15c6e
MD5 7b92621a80cc9ec803d498959203643d
BLAKE2b-256 1afc7d8bcf3264c494ffbb4b2c0a42c6298f5bbf19f8a7a52642e13541546474

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp311-cp311-win32.whl.

File metadata

  • Download URL: pixseal-0.2.1.post2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 92.1 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.1.post2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 f9a75fc0dd30d572dd6bd63fda1cb38b4fd00adb607eda3eea083df4eba547f0
MD5 3ede985eb05c7f99d1a912267e8f5c07
BLAKE2b-256 41b412d3ff9ba95085a0a150d320a94114d9dea530750e17333a194c07b3cf20

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 76aea55aead2f610a514e7c5b9914bbcd3d0eb9d1f174c05cb62e202f0cab169
MD5 39ef43ca5911e9d72427df8be48718f0
BLAKE2b-256 db0fd8cf2db64a340433bb4248642f90833cf42144687796a16df75ce1756278

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5fa0a01714c940c839792a2bc9b3b218ac7853756933950a81066d8568d88f33
MD5 1849eb5dee873faf0c8139cc2732fa45
BLAKE2b-256 3022c3463f3f01c77ccc4d3554890988bfc52693661acbfcb590aa0dd8ee3412

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bf30cc15f2bc19ba28de1590a807a1ed5359c4f4a65ecd74eb06f8b247ec8439
MD5 83fca0bb7a170d9643715e648a59eedc
BLAKE2b-256 e77e24cf6fd5c1698bd268c1ac14fc6eacd69a6fea4b852aafbf5950482646ba

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0be63c82206be8b2edf81444008c2fb0f3024d602f21ffcf842e4c68c67176e9
MD5 0d6c8868741e76333070d2cb918ebd84
BLAKE2b-256 845be3ae9fd41ed5a4c85ae8c07ee4f2042ea2a3b156b6dc014e15e3496c17ef

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e67d2d01a4087dc2b18c602d68bd5989dcd71b5e9ec8265cab4f2991cc9dca62
MD5 83cd8e9e21ddc8f6dceb300171bea2d7
BLAKE2b-256 a8f90366a672b27cfe93a2854380fe81b8701a8a1c3b5222d3277df17090d69d

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp310-cp310-win32.whl.

File metadata

  • Download URL: pixseal-0.2.1.post2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 92.7 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.1.post2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 ccd22dd9e6dcabedb8d25cad4e94998099f56c3c4471473d346272c4c833d7e7
MD5 026339a974ba05563f4492551b667c86
BLAKE2b-256 c9b23ca003e647e8bad873468f66aed6e1f454d6aa42d39f0eee32fdc923d74f

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2262f7d6f308d26edd20ca2ddaf2ad3643b5b64932e215a33c5016d486afbe0a
MD5 2c7bbe48b19ed3d51a687443ac6267be
BLAKE2b-256 89c166c67a245312841ebe477ab9216d03f803d186c33212f230490351b83505

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5e658c032282ad9206990df380b0f3f2153050d1b4f5b6466b297e020b7f73d0
MD5 5fa2792497719c6e820b581375b13729
BLAKE2b-256 4dac6054f792116f3e5121ed8c0952453f1da0fb3aa3e1f67b0e40aa830b5328

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc0ed37ce9279779f46b7f5f4f4fceeba69680d4fcd983404cba36eaf4f5aac5
MD5 061a428aef6e288aa1b0736c1b696855
BLAKE2b-256 ae88d661d56e5ea2e362b999fd84ebf8a72c87b1399feea38e926d33823a93fd

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 a7f23a0e8cb4ce1d10be2612bf84a1e002493463e68895ba3b56dbe1af664550
MD5 d8476808a40c1e5332518777fdc1b7ec
BLAKE2b-256 cdd269fe4d55c652236f6b6de9a91d3ee1ade3130a4043fd6c66353d10b06bbd

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 07a7cd07d07236ee79de3706e20a4fd0e2fe0183fd7f33477d4899ecb6ee0bde
MD5 021bf272259403f91c547d7a262fb249
BLAKE2b-256 1063ba05d63b75ad57d67524236fc36eaa77c424575a613ae16daaa877726e67

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp39-cp39-win32.whl.

File metadata

  • Download URL: pixseal-0.2.1.post2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 92.9 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.1.post2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 f2c821022980124e108d54c755efe699b3bd4bdb47d6bc772002b643e825ba19
MD5 a5d6c47d55f3d5892dc4159897b4e7e3
BLAKE2b-256 974cfc4b89f22bb084a67b478c50032bab02006c495a43077d7bdc1b4271fa34

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 c4a4f4b58eae14d6467b2c783626cac7d28f44a0225e5fefda2a0ed9bdf5eb4f
MD5 b3c4020c65df8d0a917671b3284e7e93
BLAKE2b-256 fbe304e90c78c52627a1e652b9259a4f2be6b820d123ce2f64046ada3312513f

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2916caf4b1496710d506b80c6eab30e0117de4309b1071bfdd9873e9c93326ae
MD5 32f5b3ca876c413dbc01e90912f73b22
BLAKE2b-256 0702a4e8ab14a4cae6f491e70e5976e853a712772c9c72aeb1debb75d9419575

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 028b3516656ed9fe8ecbb7df6f4e0f7b0a09b29831981c2c4ab1ede5ef06ce2a
MD5 f9f480f14842276d0f0b68e58325c2a7
BLAKE2b-256 418f52411af0ae56d8f62fd0fcc7883dbd553bae77612a6d95106e8283c5b0b1

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 90afd5a5d701bf8c76c6fd2c409b0b9ccc753f3b884492a53b6be88a6d87a607
MD5 6b4758d550ed4935ffaca84c1b256a0e
BLAKE2b-256 94f06b22bde76e83fda9d4d6f1d60c09389cbc34c9e38a457ff648f76e9548cf

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8ba26538a8c143ae8c82470f1bae1b1067a7732a28e4b29021eee611027471c1
MD5 f019d6e6683e73933482f0b58dfc95a7
BLAKE2b-256 6b4ea5780ee576f43a84a11ecd65b2584dea98eb38f2eebf4d7e71682eda7579

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp38-cp38-win32.whl.

File metadata

  • Download URL: pixseal-0.2.1.post2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 93.8 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.1.post2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 3890ac5873a0bb7faa31419fbe1c19a36f139952747c7a534cc491779c8d0f27
MD5 d3a0232a9e4d8a19274bb3803fa842a8
BLAKE2b-256 dedc08808d7cde9ba6a37e29627b0b29e7d4344936045d19ee2d4bc91f002c10

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e1da775a9a6b58227142b7faa76111a28ec5b87756bba4234cd91491f0f5fc78
MD5 1a54913b1ab7676f0f539d38fe18b011
BLAKE2b-256 85e773f643d2305b4014d17caf4d8cf5e6af88146147d8c9dbc6802b4da108bb

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c5cdbb4c2dd051c50762c424b84d51a6ef1fe467aea28e55e22c0837ca18141b
MD5 6e9a001e856ae5c7ecdde1164a30794d
BLAKE2b-256 cd588c219e73f08ff8bb1b002908fa83888986c8aee12ac4e67ee8871fdee289

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f648a098e26a8fed8a95df9f62ba62a220ce166d12891a4a737eee56540cf5c7
MD5 6a1df23c15dcbeb8825a49dcb00c7b66
BLAKE2b-256 a115fae85e7e1d4dace734bcdb8f9e23b3e0b37dbdf1ef4953b07cc65bc9cbd3

See more details on using hashes here.

File details

Details for the file pixseal-0.2.1.post2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.1.post2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 dae6271217dd8fa5b198e66bdd82d34aba456ae6c05c4d4fd91c7691a433d36c
MD5 ba7812ee1a1bb717d40e8f67a8a0091d
BLAKE2b-256 88f938fbff4bcda7dcca12f0be6c0aae556df6724218eaa2c87fff3e723f7065

See more details on using hashes here.

Supported by

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