pixtreme: A High-Performance Graphics Library with CUDA Support
Project description
pixtreme
pixtreme is a high-performance image processing library for Python, leveraging CuPy and CUDA for GPU-accelerated computations, enabling real-time video processing with advanced features.
Features
- GPU-Accelerated Processing: Optimized with CuPy's CUDA RawKernel for extremely fast video analysis
- Comprehensive Color Space Support: BGR, RGB, HSV, YCbCr, YUV (4:2:0, 4:2:2), ACES color spaces
- Advanced Image Transforms: Affine transformation, resize with 11 interpolation methods
- Super Resolution: Multiple backend support (ONNX, PyTorch, TensorRT)
- 3D LUT Processing: Trilinear and tetrahedral interpolation with both CuPy and NumPy implementations
- Professional Color Management: ACES color space transformations for film/VFX workflows
- Flexible Data Type Support: Seamless conversion between uint8, uint16, float16, and float32
- DLPack Integration: Zero-copy tensor sharing between frameworks
Requirements
-
Python >= 3.10
-
CUDA Toolkit 12.x
-
System dependencies:
basicsr-fixed >= 1.4.2 cupy-cuda12x >= 13.4.1 numpy >= 2.2.6 nvidia-nvimgcodec-cu12-stubs >= 0.5.0.13 nvidia-nvimgcodec-cu12[all] >= 0.5.0.13 onnx >= 1.18.0 onnxconverter-common >= 1.13.0 onnxruntime-gpu >= 1.22.0 openexr >= 3.3.3 spandrel >= 0.4.1 spandrel_extra_arches >= 0.2.0 tensorrt >= 10.11.0.33 tensorrt_stubs >= 10.11.0.33 torch >= 2.4 torchvision >= 0.19 -
Optional dependencies for OpenCV:
opencv-python >= 4.11.0.86 -
Optional dependencies for OpenCV Contrib:
opencv-contrib-python >= 4.11.0.86
Installation
Standard Installation
pip install pixtreme[opencv]
OpenCV Contrib Installation
pip install pixtreme[opencv-contrib]
Development Installation
git clone https://github.com/minamikik/pixtreme.git
cd pixtreme
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python pin 3.12 # supports 3.10 - 3.13
uv sync --extra dev --extra opencv
API Reference
pixtreme
get_device_id() -> int- Get current CUDA device IDget_device_count() -> int- Get number of available CUDA devicesDevice- CUDA device context manager
pixtreme.color
bgr_to_rgb(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray- Convert BGR to RGBrgb_to_bgr(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray- Convert RGB to BGRbgr_to_grayscale(image: cp.ndarray) -> cp.ndarray- Convert BGR to grayscalergb_to_grayscale(image: cp.ndarray) -> cp.ndarray- Convert RGB to grayscale using Rec.709 coefficientsbgr_to_hsv(image: cp.ndarray) -> cp.ndarray- Convert BGR to HSVhsv_to_bgr(image: cp.ndarray) -> cp.ndarray- Convert HSV to BGRrgb_to_hsv(image: cp.ndarray) -> cp.ndarray- Convert RGB to HSVhsv_to_rgb(image: cp.ndarray) -> cp.ndarray- Convert HSV to RGBbgr_to_ycbcr(image: cp.ndarray) -> cp.ndarray- Convert BGR to YCbCr (10-bit precision, Full Range)rgb_to_ycbcr(image: cp.ndarray) -> cp.ndarray- Convert RGB to YCbCr (10-bit precision, Full Range)ycbcr_to_bgr(image: cp.ndarray) -> cp.ndarray- Convert YCbCr to BGR (10-bit precision, Full Range)ycbcr_to_rgb(image: cp.ndarray) -> cp.ndarray- Convert YCbCr to RGB (10-bit precision, Full Range)ycbcr_full_to_legal(image: cp.ndarray) -> cp.ndarray- Convert Full Range YCbCr to Legal Range YCbCrycbcr_legal_to_full(image: cp.ndarray) -> cp.ndarray- Convert Legal Range YCbCr to Full Range YCbCrycbcr_to_grayscale(image: cp.ndarray) -> cp.ndarray- Extract Y channel as grayscaleyuv420p_to_ycbcr444(yuv420_data: cp.ndarray, width: int, height: int, interpolation: int = 1) -> cp.ndarray- Convert YUV 4:2:0 planar to YCbCr 4:4:4yuv422p10le_to_ycbcr444(ycbcr422_data: cp.ndarray, width: int, height: int) -> cp.ndarray- Convert 10-bit YUV 4:2:2 to YCbCr 4:4:4uyvy422_to_ycbcr444(uyvy_data: cp.ndarray, height: int, width: int) -> cp.ndarray- Convert UYVY 4:2:2 packed formatndi_uyvy422_to_ycbcr444(uyvy_data: cp.ndarray) -> cp.ndarray- NDI-specific UYVY conversionaces2065_1_to_acescct(image: cp.ndarray) -> cp.ndarray- ACES2065-1 to ACEScct (log encoding)aces2065_1_to_acescg(image: cp.ndarray) -> cp.ndarray- ACES2065-1 to ACEScg (linear)aces2065_1_to_rec709(image: cp.ndarray) -> cp.ndarray- ACES2065-1 to Rec.709acescct_to_aces2065_1(image: cp.ndarray) -> cp.ndarray- ACEScct to ACES2065-1acescg_to_aces2065_1(image: cp.ndarray) -> cp.ndarray- ACEScg to ACES2065-1rec709_to_aces2065_1(image: cp.ndarray) -> cp.ndarray- Rec.709 to ACES2065-1read_lut(file_path: str, use_cache: bool = True, cache_dir: str = "cache") -> cp.ndarray- Read .cube format 3D LUT filesapply_lut(frame_rgb: cp.ndarray, lut: cp.ndarray, interpolation: int = 0) -> cp.ndarray- Apply 3D LUT with interpolationinterpolation=0: Trilinear interpolationinterpolation=1: Tetrahedral interpolation
pixtreme.draw
circle(image: cp.ndarray, center: tuple[int, int], radius: int, color: tuple[int, int, int], thickness: int = 1) -> cp.ndarray- Draw a circle on the imagerectangle(image: cp.ndarray, top_left: tuple[int, int], bottom_right: tuple[int, int], color: tuple[int, int, int], thickness: int = 1) -> cp.ndarray- Draw a rectangle on the imageadd_label(image: cp.ndarray, text: str, position: tuple[int, int], color: tuple[int, int, int] = (255, 255, 255), font_scale: float = 1.0, thickness: int = 2) -> cp.ndarray- Add a label to the imageput_text(image: cp.ndarray, text: str, position: tuple[int, int], color: tuple[int, int, int] = (255, 255, 255), font_scale: float = 1.0, thickness: int = 2) -> cp.ndarray- Put text on the image
pixtreme.filter
GaussianBlur- Gaussian blur filter classgaussian_blur(image: cp.ndarray, kernel_size: int, sigma: float, kernel: cp.ndarray | None = None) -> cp.ndarray- Apply Gaussian blur
pixtreme.io
imread(input_path: str, is_rgb: bool = False, is_nvimgcodec: bool = False) -> cp.ndarray- Read image file to GPU memoryimwrite(output_path: str, image: cp.ndarray | np.ndarray, param: int = -1, is_rgb: bool = False) -> None- Write GPU image to fileimshow(title: str, image: np.ndarray | cp.ndarray | nvimgcodec.Image, scale: float = 1.0, is_rgb: bool = False) -> None- Display GPU imagewaitkey(delay: int) -> int- Wait for keyboard inputdestroy_all_windows() -> None- Close all OpenCV windows
pixtreme.transform
resize(src: cp.ndarray | list[cp.ndarray], dsize: tuple[int, int] | None = None, fx: float | None = None, fy: float | None = None, interpolation: int = INTER_AUTO) -> cp.ndarray | list[cp.ndarray]- Interpolation constants:
INTER_NEAREST(0) - Nearest neighborINTER_LINEAR(1) - Bilinear interpolationINTER_CUBIC(2) - Bicubic interpolationINTER_AREA(3) - Area-based resamplingINTER_LANCZOS4(4) - Lanczos interpolation over 8x8 neighborhoodINTER_AUTO(5) - Auto-select based on image sizeINTER_MITCHELL(6) - Mitchell-Netravali cubic filterINTER_B_SPLINE(7) - B-spline interpolationINTER_CATMULL_ROM(8) - Catmull-Rom splineINTER_LANCZOS2(9) - Lanczos over 4x4 neighborhoodINTER_LANCZOS3(10) - Lanczos over 6x6 neighborhood
- Interpolation constants:
affine_transform(src: cp.ndarray, M: cp.ndarray, dsize: tuple, flags: int = INTER_AUTO) -> cp.ndarray- Apply affine transformationget_inverse_matrix(M: cp.ndarray) -> cp.ndarray- Calculate inverse transformation matrixcrop_from_kps(image: cp.ndarray, kps: cp.ndarray, size: int = 512) -> tuple[cp.ndarray, cp.ndarray]- Crop image based on keypointserode(image: cp.ndarray, kernel_size: int, kernel: cp.ndarray | None = None, border_value: float = 0.0) -> cp.ndarray- Morphological erosion
pixtreme.upscale
OnnxUpscaler- ONNX Runtime-based upscaling- Constructor:
OnnxUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0, provider_options: list | None = None)
- Constructor:
TorchUpscaler- PyTorch-based upscaling- Constructor:
TorchUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device: str = "cuda")
- Constructor:
TrtUpscaler- TensorRT-optimized upscaling- Constructor:
TrtUpscaler(model_path: str | None = None, model_bytes: bytes | None = None, device_id: int = 0)
- Constructor:
check_torch_model(model_path: str) -> bool- Check if a model is a valid PyTorch modelcheck_onnx_model(model_path: str) -> bool- Check if a model is a valid ONNX modeltorch_to_onnx(model_path: str, onnx_path: str, input_shape: tuple = (1, 3, 1080, 1920), opset_version: int = 20, precision: str = "fp32", dynamic_axes: dict | None = None, device: str = "cuda")- Convert PyTorch models to ONNXonnx_to_trt_dynamic_shape(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20)- Convert ONNX models to TensorRT with dynamic shape supportonnx_to_trt_fixed_shape(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20, input_shape: tuple = (1, 3, 1080, 1920))- Convert ONNX models to TensorRT with fixed shape supportonnx_to_trt(onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1024 << 20)- Convert ONNX models to TensorRT
pixtreme.utils
to_uint8(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray- Convert to 8-bit unsigned integerto_uint16(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray- Convert to 16-bit unsigned integerto_float16(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray- Convert to 16-bit floatto_float32(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray- Convert to 32-bit floatto_float64(image: np.ndarray | cp.ndarray) -> np.ndarray | cp.ndarray- Convert to 64-bit floatto_dtype(image: np.ndarray | cp.ndarray, dtype: str) -> np.ndarray | cp.ndarray- Convert to specified dtypeguess_image_layout(image: np.ndarray | cp.ndarray) -> str- Infer image layout (e.g., "HW", "HWC", "CHW", "NHWC", "NCHW", "ambiguous", "unsupported")images_to_batch(images: cp.ndarray | list[cp.ndarray], size: int | tuple[int, int] | None = None, scalefactor: float | None = None, mean: float | tuple[float, float, float] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray- Convert to batch format for neural networksimage_to_batch(image: cp.ndarray, size: int | tuple[int, int] | None = None, scalefactor: float | None = None, mean: float | tuple[float, float, float] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray- Convert single image to batch formatimage_to_batch_pixelshift(image: cp.ndarray, dim: int = 4, scalefactor: float | None = None, size: int | tuple[int, int] | None = None, swap_rb: bool = True, layout: Layout = "HWC") -> cp.ndarray- Convert image to batch format with pixel shiftbatch_to_images(batch: cp.ndarray, swap_rb: bool = True, layout: Layout = "NCHW") -> list[cp.ndarray]- Convert batch format back to imagesto_cupy(image: np.ndarray | torch.Tensor | nvimgcodec.Image) -> cp.ndarray- Convert various formats to CuPy arrayto_numpy(image: cp.ndarray | torch.Tensor | nvimgcodec.Image) -> np.ndarray- Convert to NumPy arrayto_tensor(image: np.ndarray | cp.ndarray | nvimgcodec.Image, device: str | torch.device | None = None) -> torch.Tensor- Convert to PyTorch tensor (requires PyTorch)
Usage Examples
Basic Image Processing
import cupy as cp
import pixtreme as px
# Read and convert image
frame_bgr = px.imread("image.jpg")
frame_bgr = px.to_float32(frame_bgr)
frame_rgb = px.bgr_to_rgb(frame_bgr)
# Color space conversions
frame_ycbcr = px.rgb_to_ycbcr(frame_rgb)
frame_hsv = px.rgb_to_hsv(frame_rgb)
# Advanced resize with Mitchell filter
frame_resized = px.resize(frame_rgb, (1920, 1080), interpolation=px.INTER_MITCHELL)
# Apply Gaussian blur
frame_blurred = px.gaussian_blur(frame_resized, 15, 5.0)
# Convert back and save
frame_bgr_out = px.rgb_to_bgr(frame_blurred)
frame_bgr_out = px.to_uint8(frame_bgr_out)
px.imwrite("output.jpg", frame_bgr_out)
Face Processing
import pixtreme as px
# Initialize face processing
detector = px.FaceDetection(model_path="models/detection.onnx")
embedder = px.FaceEmbedding(model_path="models/embedding.onnx")
swapper = px.FaceSwap(model_path="models/swap.onnx")
# Process faces
image = px.imread("portrait.jpg")
faces = detector.get(image)
for face in faces:
embeddings = embedder.get(face)
swapped = swapper.get(target_face, source_face)
Super Resolution
import pixtreme as px
# ONNX upscaling
upscaler = px.OnnxUpscaler(model_path="models/esrgan.onnx")
image_hr = upscaler.upscale(image_lr)
# TensorRT optimized upscaling
trt_upscaler = px.TrtUpscaler(model_path="models/esrgan.trt")
image_hr_fast = trt_upscaler.upscale(image_lr)
Professional Color Grading with ACES
import pixtreme as px
# Load image in Rec.709
image = px.imread("footage.png")
image = px.to_float32(image)
# Convert to ACES color space
image_aces = px.rec709_to_aces2065_1(image)
# Work in ACEScg (linear)
image_acescg = px.aces2065_1_to_acescg(image_aces)
# Apply color grading...
# Convert back to Rec.709
image_graded = px.acescg_to_aces2065_1(image_acescg)
image_final = px.aces2065_1_to_rec709(image_graded)
3D LUT Application
import pixtreme as px
# Load LUT
lut = px.read_lut("color_grade.cube")
# Apply with tetrahedral interpolation
image_graded = px.apply_lut(image_rgb, lut, interpolation=1)
Multi-GPU Processing
import pixtreme as px
# Process on specific GPU
with px.Device(1):
image = px.imread("large_image.jpg")
processed = px.resize(image, (4096, 2160))
# Get device info
device_count = px.get_device_count()
current_device = px.get_device_id()
Performance Notes
- All color conversion operations use optimized CUDA kernels
- Supports both legal range (16-235) and full range (0-255) for video processing
- 10-bit precision support for professional video workflows
- Zero-copy tensor sharing via DLPack for framework interoperability
- Batch processing support for multiple images
License
pixtreme is distributed under the MIT License (see LICENSE).
Included Components
- ACES LUTs
- © 2014 Academy of Motion Picture Arts and Sciences
- Licensed under "License Terms for ACES Components"
- See third_party/aces/LICENSE_ACES.txt for details
Authors
minamik (@minamikik)
Acknowledgments
sync.dev
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 Distributions
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 pixtreme-0.2.7.tar.gz.
File metadata
- Download URL: pixtreme-0.2.7.tar.gz
- Upload date:
- Size: 10.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
306e8c2889fa1328e88372a56a7652af82b21c09421151f70482120c2bc7eee8
|
|
| MD5 |
eaa051e7f8f8913fc013ce37e54bad1d
|
|
| BLAKE2b-256 |
67e14c5958e6cf10c0378ae7b775b4f96bd56a46d7117e3bf06ee8df6955045e
|
File details
Details for the file pixtreme-0.2.7-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64038ae1a5d00d78a177a7a79125ecf89cc97def187aac17a20d69cdedc39cd6
|
|
| MD5 |
907363dbad895fad42b88b0fc083b567
|
|
| BLAKE2b-256 |
0393ae88552197465d9b97fa067f8d6c711c0ad7d1503cb1b629e5444df8dcde
|
File details
Details for the file pixtreme-0.2.7-cp313-cp313-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp313-cp313-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.13, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9bbf170fe5950f201766a99ec84d46bc2723c501da5f33414b3baf790dea350
|
|
| MD5 |
4a4e91eb83b1b995cd909266ed64371c
|
|
| BLAKE2b-256 |
837f7d549e61ba08014988de846539e07ea6975da3435bfa5e68c9d0953b003f
|
File details
Details for the file pixtreme-0.2.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b803fca81b0af0b7c1fe83b3be8dbfad264961a6b8439dd5023bb84f66654b5
|
|
| MD5 |
87e0c6b2ec6e4d9a01c5fe9cd43d7b69
|
|
| BLAKE2b-256 |
cf6942ea149e010cf82c2fa8eeddde34e1ed76a3e73e3c8a291cbc05fa388791
|
File details
Details for the file pixtreme-0.2.7-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c5f8df7941c83e07e8323de4172df9ec91acda3c7f1c1c80a62913540ec103b
|
|
| MD5 |
21f40049e58a141c87b8af13def15d64
|
|
| BLAKE2b-256 |
31fceae6bc4e6a8f1f734b3cee2c9a1a1ca53ef72980f07a1e3c7460c1efa283
|
File details
Details for the file pixtreme-0.2.7-cp312-cp312-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp312-cp312-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.5 MB
- Tags: CPython 3.12, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32d1fc7f311519533eae605d4f16e0a81e50e4c71c8d5522da7c511f8bccedf9
|
|
| MD5 |
a1e794864303b63e729f9034634261c1
|
|
| BLAKE2b-256 |
b22b36a3dc3afc7b54d04731bd054a8de243a87c2691e40744ed88ef66ad5b6e
|
File details
Details for the file pixtreme-0.2.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.5 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
86e1c9b760b537f998fb6b1f917752fc87a07e84ce33e2e428f1d0cf74616640
|
|
| MD5 |
f1854e6fcd35615495b4166ac7a56416
|
|
| BLAKE2b-256 |
cf09c036057c1cd460a6e048c664059e6b310d8133884cab4fce44ff89683f74
|
File details
Details for the file pixtreme-0.2.7-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47866b29b061766f756260fdfa23d3d2fbd56749c53008673867fcecc4f369a4
|
|
| MD5 |
43bba149b04286904faf346e5c192aac
|
|
| BLAKE2b-256 |
4e884fd9f466a919741319e3510c0c4f86b7368df1cf34be9028be95c0bead2c
|
File details
Details for the file pixtreme-0.2.7-cp311-cp311-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp311-cp311-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.11, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b7e3d303b224a06c53333788c2b74a262c477a18a7ae42956126e3b093aa915
|
|
| MD5 |
a791486e9bb0a27e05c923fdb8160070
|
|
| BLAKE2b-256 |
a6763453aba57bab26b409b042f70d52acaa498e1dbfa32e79bcd1a125aa109e
|
File details
Details for the file pixtreme-0.2.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a9c8c89082efb8d9532b27bac5d69098cde9240201c8086293e8b749e7621e8
|
|
| MD5 |
ccf8f219204c418a9d9e6a425ea010c4
|
|
| BLAKE2b-256 |
9b4ac3507e23f67d50a2c0a1e1c9af560fecea9c77010efac91979b97c963ff1
|
File details
Details for the file pixtreme-0.2.7-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 5.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
162ed0e463b39ed2277baa64c308237c4d8691749e242be1215275435f0df989
|
|
| MD5 |
6a33a41db610a90561c337f31d4e2870
|
|
| BLAKE2b-256 |
0d666baadfaba9a4d59faba737cdfb16a5f82bc73326dd0c8465cc588cf09bee
|
File details
Details for the file pixtreme-0.2.7-cp310-cp310-musllinux_1_2_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp310-cp310-musllinux_1_2_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.10, musllinux: musl 1.2+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
63af9fa2bf68ada9c7ec76b97a831c2f707ef36aa39ef3c45bcd6b230dec3808
|
|
| MD5 |
32cb1793c7d6de2b413890174a1832ce
|
|
| BLAKE2b-256 |
62d5fc7824f100c83e4737b623ed7ecd87d4fec3d69c253797a19f1cf67ced4b
|
File details
Details for the file pixtreme-0.2.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: pixtreme-0.2.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c3464263e2bb33a78f306d184f3019bdb73a0f06345407f55c5e62f7de7c7e4
|
|
| MD5 |
d898b1b0a151ad038b0ba875c546b922
|
|
| BLAKE2b-256 |
bd2ae9588c96164a410ec5494d18e74db5afd832d6a28ac9128f0da1d7f32afb
|