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 the Cython extension

If you cloned the repository (or downloaded the source), run the helper script to compile the simpleImage_ext extension for your environment:

git clone https://github.com/kyj9447/Pixseal.git
cd Pixseal
python3 -m pip install -r requirements.txt
./compile_extension.sh

This command regenerates the C source via Cython and invokes your local C compiler (clang or gcc) to produce pip_package/Pixseal/simpleImage_ext*.so. You still need a working build toolchain (gcc/clang and Python headers) installed through your OS package manager. 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.2.tar.gz (22.6 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.2-pp310-pypy310_pp73-win_amd64.whl (120.4 kB view details)

Uploaded PyPyWindows x86-64

pixseal-0.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pixseal-0.2.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (147.4 kB view details)

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

pixseal-0.2.2-pp39-pypy39_pp73-win_amd64.whl (120.4 kB view details)

Uploaded PyPyWindows x86-64

pixseal-0.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (145.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pixseal-0.2.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (147.5 kB view details)

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

pixseal-0.2.2-pp38-pypy38_pp73-win_amd64.whl (120.3 kB view details)

Uploaded PyPyWindows x86-64

pixseal-0.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (154.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

pixseal-0.2.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (155.0 kB view details)

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

pixseal-0.2.2-cp313-cp313-win_amd64.whl (130.5 kB view details)

Uploaded CPython 3.13Windows x86-64

pixseal-0.2.2-cp313-cp313-win32.whl (111.1 kB view details)

Uploaded CPython 3.13Windows x86

pixseal-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl (943.2 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixseal-0.2.2-cp313-cp313-musllinux_1_2_i686.whl (900.5 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ i686

pixseal-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (910.3 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

pixseal-0.2.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (862.0 kB view details)

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

pixseal-0.2.2-cp312-cp312-win_amd64.whl (130.4 kB view details)

Uploaded CPython 3.12Windows x86-64

pixseal-0.2.2-cp312-cp312-win32.whl (111.3 kB view details)

Uploaded CPython 3.12Windows x86

pixseal-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl (943.0 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixseal-0.2.2-cp312-cp312-musllinux_1_2_i686.whl (903.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ i686

pixseal-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (914.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

pixseal-0.2.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (869.3 kB view details)

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

pixseal-0.2.2-cp311-cp311-win_amd64.whl (130.5 kB view details)

Uploaded CPython 3.11Windows x86-64

pixseal-0.2.2-cp311-cp311-win32.whl (112.2 kB view details)

Uploaded CPython 3.11Windows x86

pixseal-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl (985.2 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixseal-0.2.2-cp311-cp311-musllinux_1_2_i686.whl (961.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ i686

pixseal-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (953.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pixseal-0.2.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (908.4 kB view details)

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

pixseal-0.2.2-cp310-cp310-win_amd64.whl (130.5 kB view details)

Uploaded CPython 3.10Windows x86-64

pixseal-0.2.2-cp310-cp310-win32.whl (112.9 kB view details)

Uploaded CPython 3.10Windows x86

pixseal-0.2.2-cp310-cp310-musllinux_1_2_x86_64.whl (933.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixseal-0.2.2-cp310-cp310-musllinux_1_2_i686.whl (919.3 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ i686

pixseal-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (903.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pixseal-0.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (860.6 kB view details)

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

pixseal-0.2.2-cp39-cp39-win_amd64.whl (130.7 kB view details)

Uploaded CPython 3.9Windows x86-64

pixseal-0.2.2-cp39-cp39-win32.whl (113.1 kB view details)

Uploaded CPython 3.9Windows x86

pixseal-0.2.2-cp39-cp39-musllinux_1_2_x86_64.whl (928.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

pixseal-0.2.2-cp39-cp39-musllinux_1_2_i686.whl (913.1 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ i686

pixseal-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (896.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pixseal-0.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (856.0 kB view details)

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

pixseal-0.2.2-cp38-cp38-win_amd64.whl (131.5 kB view details)

Uploaded CPython 3.8Windows x86-64

pixseal-0.2.2-cp38-cp38-win32.whl (114.0 kB view details)

Uploaded CPython 3.8Windows x86

pixseal-0.2.2-cp38-cp38-musllinux_1_2_x86_64.whl (975.6 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

pixseal-0.2.2-cp38-cp38-musllinux_1_2_i686.whl (945.7 kB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ i686

pixseal-0.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (941.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pixseal-0.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (901.6 kB view details)

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

File details

Details for the file pixseal-0.2.2.tar.gz.

File metadata

  • Download URL: pixseal-0.2.2.tar.gz
  • Upload date:
  • Size: 22.6 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.2.tar.gz
Algorithm Hash digest
SHA256 87757f343f028a1956f3875e0fa73ab7fc7080bca532331649e3696756596b90
MD5 1d53a7df5fd11d5a771ba245c2cdc804
BLAKE2b-256 43fee4e9c7a799e62db6fd1bcacbaed07ed4c227252dcf8ab508df0149b87e4f

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 7dd2011a5dfab5f2e10919f0c9204f3db0f4ba0d3def5652f8b0172d197ddb3d
MD5 bfde16d9af8a0323d0e63e676b8cdad6
BLAKE2b-256 1f16681a064f9f30838accb7e8b56c637a44a13a67f71ff0e9f357f378578394

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f05c7b0d70a3f26099d3464f33596dbe1af7ad34c740a83eeba8c6d9a6e6095c
MD5 8946b541e8bc420b43a837e03a6dc6f7
BLAKE2b-256 357cbc9023ea17511e550bd1d571961b595dc325d14c397485f740cdca089a31

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-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.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 bce249dc0186b79b277ca3a28bb952b83e6f8e8958f30921d014f57af1401071
MD5 62e14b8f427abe0b4841f890d8649b81
BLAKE2b-256 661f57e3fac620a1bc9d4bfa25f08e77e5d9a55ee7ba5b5b4515cf4fb0738a20

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 21ebb9afc2ca15df699a580aa966296da86833cbf0efd6415c0203860baf5739
MD5 34fe160299ecc716696f51ee2bb1e451
BLAKE2b-256 db888b3ba3afdd56a1f18835ced331de64f7c6439c174291c8fa2b76dbb56c28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f55a455d428222f02d4790006c04e74c7ee567d9ccc6824a2d9518a92b056cef
MD5 3e9cb2496bebc1faba46ef5145b07fee
BLAKE2b-256 92f762764f7df6acb1bb46d4e34485db534eb1b520cea93a3a7e4e7b179fd517

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-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.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9683f54c2f21afbb9ec57ee82245b97b06ff3c283b06df6d97397473793b70ca
MD5 6899e88468e4613229fc294baec12601
BLAKE2b-256 b95d37760341ee008f19cc298d4cdbdd435b0cb67165f38cdff33d4bedd4014c

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 7a0c8b3ac7a826c0c981d4390122c47c16a6305877303deb92dea477b5fbff44
MD5 d57349b91e56469ed3f733a37bd2694d
BLAKE2b-256 e66d59f7f6dad85b593662d7aae0b86e79cbeaee7509542491488fe33d36ef2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 066e30f42e0cb0019933dd92ac4f4218489a86f65322bc1c227adf4dfa282b64
MD5 ef2cb568222dfce090722b08430bfba8
BLAKE2b-256 4299d1271fe277bd3d468806d9868fe163e51446d14ec0ead825fbdc025ab83f

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-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.2-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 9d002a975433c88b6cdca8a5b0499d03d23aa38b87940b81fc89187004747804
MD5 4c1e6a8ed0e989795b5996af8e72dd07
BLAKE2b-256 98b7247b2b2e1ccae49f4c7c83d310c27c5164ff332f062b5d25eda6adeba0dd

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 130.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.2-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 db4692368c28323b5bfcdbdbb42be5f20c4d5578e04cf3282aaa720393fc0938
MD5 bb0652c1dcad0732a644a08f444b0c35
BLAKE2b-256 73fd189b7052e20b22f7b7f279c59c75a82ef4f39eb392911c56ff4553eeeaf5

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp313-cp313-win32.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp313-cp313-win32.whl
  • Upload date:
  • Size: 111.1 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.2-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 295747b71f8206439d9266e5d4abe48bfa2400bc7678877ed3d8fbcc85f009c7
MD5 30db37c8dab23e186d24f3ebc3e6aec7
BLAKE2b-256 3b03f707538c5f389e4ee12bfd9a8284321555c6b541d3b497b1f23aaf4a1c38

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4664fb4363778bd92e46e0d480d3f6cefda04a5099b967093e21c85f19650cc9
MD5 5de0a8387dc65a7713372261418eca1c
BLAKE2b-256 d9e726bc2e8f53a4363e71050d2d1a02a8be0f4af424e7328d16a55d2fde6872

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp313-cp313-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp313-cp313-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 c2d72a2a31a7676402d4553e907a458b8baf9aa3ec4c6c13cf7608aa8306ac83
MD5 bce6b7d599d5804350d70fbaa5a59a7e
BLAKE2b-256 703a746af8a0e0e01ee52cd47ac13361dbc211d3f038e8ba24c5492a588f273c

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61e18b4230028b64ba3b5683aef88ede2d6fe4a041fad15376ee28ea4600fdd5
MD5 772bf5e7998bcd938c27df161227865f
BLAKE2b-256 4c0305fc38378e990b77bc451edc86db4d1dd1e5d9017fd3e33798fccde53db9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 026b83e07ad52f44fa0329bd91c6ac303a676be7d2e451fc6cce4b689f491298
MD5 43534de62cc8decc714bb0b8b74906d6
BLAKE2b-256 ef9625bfa7740b070fffed4ebea1ce07d2bba9d53050a2b798b64f7a892bae33

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 130.4 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.2-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 89507fc2be8efc21f1f8167d5485e029ac0dd2addc2a020b55be4dcaa63510a0
MD5 cd1180b535ee0f4f7f16f6db6b05f217
BLAKE2b-256 ec27b1b79571c307e290bf5441a665f1504b7eec0035ca9ff1a024b493941bac

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp312-cp312-win32.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp312-cp312-win32.whl
  • Upload date:
  • Size: 111.3 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.2-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 86a3f04e448fc0675e0fb061d727bd033de56a5b88768865198a4f6383c82a87
MD5 09252cec044995eaf7cf7de7efc5246b
BLAKE2b-256 907bcef0fb6546e6f80d6d65b27f79d2b7b77355e9ab7fe4e6ddf26183f039e2

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 98688e022828985b0f7e1107174080b36f8aa93075d830b5bb4d6a188d6395cd
MD5 b7d5035e54c0a22b061c66465759849a
BLAKE2b-256 cd2fa60e82293a9188a87ffd4e9c8dd5ef3df3c998b9fb63430dbbc99f11f5f9

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp312-cp312-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp312-cp312-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 bbc24c7234e0561b120a1916dbc9f271a9bd129b7da8bc9f19b8fd6eb498ffa4
MD5 5b21374ae73819a0e9396d51e79f45a6
BLAKE2b-256 f7d37bf4929645ebe8cdf007361735249c93be421742a162183e0c8a5f77ce5a

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 81bb906a563a167867454db06dc712c64cd534b5fc4aa3f0eb33d9ef1157e76c
MD5 67f53f3af181051b3f9337d42ebef1ef
BLAKE2b-256 bb785eb3f71d6a82e06f47c6801753c346a27b0528aceb9cfa8173196f00ecf4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5b004782407a89ca0df248ac92e7a52cecb6008e275bc1fdad9233ad29d113e4
MD5 d854ffd9c4a97156fbeaf2c9d2a970ce
BLAKE2b-256 3ba76598f1f8e206dc994cf4a414ee573ea23efc8da3a6b94657a9096588ce08

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 130.5 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bb1df86bd905624cff1df9de5df4a2f3a9ea008bc56354bc06dcb19bf5bf3dbd
MD5 715211d04626d6a3e6a81425bf415dbf
BLAKE2b-256 4c960e6ea9ba27df19bb0f084f3717f7f723b5b6ddabf542aaeabf541f55dbc2

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 112.2 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.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 4e031d916c4acc8e687adb0fec8e00d1cc0473ab3ae3b43b512d085b7251e951
MD5 c5534166978ce355cfc20124d343585c
BLAKE2b-256 c626c6bcf9786b397b11b780b90ad0a85786a975d6ac47a87afbfe0ecf831de5

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d288942b0101d98719b79c929578b5359a592685ab770c63f438569fcdc4abd0
MD5 75998e13618756d5c23ba0b356e353b6
BLAKE2b-256 6228c9c090d15ca490f2b6242a40789b410e44fa07d6554dcb00090054ba4d26

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp311-cp311-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp311-cp311-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 5cd5407af0357cea15e9f63cf122ee880033a9359f7d5229cfb78b977d085db3
MD5 9cae2a1b3d96593112e1793c2a7d4bb4
BLAKE2b-256 e17efde6e616a8d3f65cb5f318d72f87832ceae64e37f7aa4221fa82048acfc4

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a55845b1077faa9a049354c2d8591bdb881ee3a0f6bac31ff98b14f18381f178
MD5 ee4ab206f120d06da4251a75f043e0e2
BLAKE2b-256 50501aa8a761beb45371467f26a6d68d663e264cef53d2b94612464d01c97ccb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 11902b420048f57d3df768e497c6bc75ec03072eb31bdccfd87703da51b8beee
MD5 9803b47710e2bdde8b3ff573db2fe809
BLAKE2b-256 20e2569d6a722f39906dbe059eb3588169ffb359780b7d0502d010d6e1832cd9

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 130.5 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 91e84c6db80c8ca1926a12bbeadc7fd79dbfac63c39b56153af36acb43890878
MD5 d66c6336106545cb783aab3837089cd1
BLAKE2b-256 e3f17ead6e685f6918b61676d25772034af05988d16d5811fa42f474e6f2635d

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 112.9 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.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 67df9fdea6ad712e1fdf75ef5af9c2930995b7360ad8b8dda32583639abf7258
MD5 269408df15ec479339cf7fe13d252062
BLAKE2b-256 c59486e80b5d110bcfe02f2eebf6edd44ee30664d0a45813c32f5ff7b6aa8ce7

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5abd6772082d394ffc21912b00a2923c7da25845ab261017349cc22eab6926c6
MD5 5da4176f470464783ad0326c2548cecd
BLAKE2b-256 b80ea4af678960b5d8b328e9570685f8001cee668f7567813a2796c28949545c

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp310-cp310-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp310-cp310-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 a58ff19f4a03f041e5479676cf610f1b94311c876756fe00fb1b3629a69cadc8
MD5 02d5688ffa0447560526108f25cf6fd4
BLAKE2b-256 7b78b86026fca1bd212419365e6695b742cff5cb74360000ff6b5a323e91879f

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f41394b69bfddd4de11e8563b1769c7598d93f1d48b37422e41adb1109c3f7ae
MD5 8d7e19e46439336d895b1d4825dacf0d
BLAKE2b-256 ea67d38c27bfbf89ba2462b3f25c0aa666db167365cbcc0bc809432d162214a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7cef20f4357e880eef36c464ca26f55d68e93097298b39ace291a605bd71377b
MD5 f46556776bc50d84749e7f3aece8650a
BLAKE2b-256 59a6cbc107e8fb064d2462bf3758287d25f4343555390a7d3dc932d8852917c3

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 130.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 862ab78ad55e0238d4a942a71e415bf05aa5f175de698bb819fc388f9da06dbc
MD5 dfeb0c2894f3975e909d802376278eb0
BLAKE2b-256 2a96209879a240f9617c34f4563f7f50f9c9768986fb0edf044cfe144c7c577d

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp39-cp39-win32.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 113.1 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.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 b4074a7f9f5bb87083a33f2844450adb1e40a0b88ee124b706c1a6ee718b8e54
MD5 01239fbdbabd91172447e8814b87eee8
BLAKE2b-256 fc98f4ec976ffc5d793cefe57c206cbd7bd068166e087b2f30ab4afe703dc052

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3622d3211a5b8a6e2ce4d86eab59ba74a3cd96e08fa59f66324ca2595eb93e99
MD5 7841a4e42b77f3cd743824831b684844
BLAKE2b-256 327f30ff5a65acbe3a87ce4cbe0456d3ef840677b5d930d50f7bbda2a0a896e4

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp39-cp39-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp39-cp39-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 2e2e09f9e11f687ffdcc2393f7cbef80648351abcf0954d261dcf983eaaf605e
MD5 f98ac3df99505c3f62fb4745b5e2dbf4
BLAKE2b-256 b07b310c1a7a905ed3dc338a9de7b921b29a8eea14081ced7e2925cec59f243b

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c85fd79d81590f3821e459a11307eb4f28fc0a959f61444448f67d8c733a4bcb
MD5 6d265e1d3c79f036045f698118fba6f0
BLAKE2b-256 48f56541bf0349426bf87e0a7c860b6caf6a881bd1baeaa4a1ae99cf533cda44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7ea74f51f725e7386bd3991d74ffb5bf4a52a562ddaf14b6d9c7005df9a073d5
MD5 d9d1c177ca2949c9a7a86b6cceeecc40
BLAKE2b-256 10f0e970bdf4e8d7f11eec67b79ea2f779fb6d0a75394455b62fc445e7287d3e

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 131.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pixseal-0.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9105424f82be30d70aaa26d9dff1f2e3ed649960bd0eee6136489939032ea420
MD5 58206c68c2aa40e941b534478da6041d
BLAKE2b-256 7042d493d2b1d47c74b2d0dfb8d87ef3553f0d6a2dd8e1eeee1480364d59e2d3

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: pixseal-0.2.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 114.0 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.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 4c0b1de1ebf1cf798dd4f62e6e2cc7381f57163e73ecca195af8bf79637c86b8
MD5 ed71531b3b9c8889eb3f1aeb79147611
BLAKE2b-256 fe1c99373b67918e76cbe4188935f854e78b76b287305c42fe0079fd154add43

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 78ff749c2d3d19f3fcc82e4a566ca9bf31ee7c673a8feddf32863b543ee5496c
MD5 6b262bedaa09d01cbb67e7bfbe7f73be
BLAKE2b-256 3528bde3c957bd993f0115096ca2975582b9bbb642f58247afdc7be0ebac245d

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp38-cp38-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp38-cp38-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 0a0229c449f9e8a54a5a0a7307136601e7f21b0421cc04ed677ba538174cb0dd
MD5 f584b799b08023f6b67ee2f30d8ed4b7
BLAKE2b-256 09b5ad716634cd27270c04832f9e695a03a5c2afe196f767ce1e2d55e4705a5c

See more details on using hashes here.

File details

Details for the file pixseal-0.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pixseal-0.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 122776616481f2a52a8a8968ff86299357d56f4f8f13a27f996790f0fda841fc
MD5 28acdf0915fd43e14ba9ea4d719911e4
BLAKE2b-256 9616e781bca26e3d883a80e606158cd6e6367d61577b9cb71546fed093c7fd9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pixseal-0.2.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 208b58382c2c7a650edd92e862160f89b3881425e8f3a56e82f597cb59b30f5d
MD5 d70f3e6884da9e29786e6ba88e7b5a80
BLAKE2b-256 17d25205c8456aa29d4741e2ef06fda52940e8f5fb5b0949e7a84e3a1fd6ad16

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