Skip to main content

pixtreme: A High-Performance Graphics Library with CUDA Support

Project description

🚀 pixtreme

Blazing-fast GPU-accelerated image processing for Python

Python CUDA License PyPI

🌟 Highlights

  • ⚡ Lightning Fast: CUDA-optimized kernels deliver real-time performance
  • 🎨 Professional Color Pipeline: Full ACES workflow, 3D LUTs, 10-bit precision
  • 🧠 AI-Ready: Seamless integration with ONNX, PyTorch, and TensorRT
  • 🔗 Zero-Copy Interop: DLPack support for PyTorch, TensorFlow, JAX
  • 📊 Extensive Format Support: OpenEXR, JPEG, PNG, TIFF, and more

📋 Table of Contents

✨ Features

🎯 Image Processing

  • 11 Interpolation Methods: Nearest, Linear, Cubic, Area, Lanczos (2/3/4), Mitchell, B-Spline, Catmull-Rom
  • Advanced Transforms: Affine transformations, tiling with overlap blending
  • Morphological Operations: Erosion with custom kernels
  • GPU-Accelerated Filters: Gaussian blur, custom convolutions

🎨 Color Science

  • Color Spaces: BGR/RGB, HSV, YCbCr, YUV (4:2:0, 4:2:2), Grayscale
  • ACES Pipeline: Complete Academy Color Encoding System workflow
  • 3D LUT Processing: Trilinear and tetrahedral interpolation
  • 10-bit Precision: Professional video color accuracy

🤖 Deep Learning

  • Multi-Backend Support: ONNX Runtime, PyTorch, TensorRT
  • Super Resolution: Built-in upscaling with various models
  • Batch Processing: Efficient multi-image inference
  • Model Optimization: Automatic conversion and optimization tools

🔧 Advanced Features

  • Memory I/O: Encode/decode images in memory
  • Hardware Acceleration: NVIDIA nvimgcodec support
  • Drawing Tools: GPU-accelerated shapes and text rendering
  • Framework Integration: Zero-copy tensor sharing via DLPack

🚀 Installation

Requirements

  • Python >= 3.10
  • CUDA Toolkit 12.x
  • NVIDIA GPU with compute capability >= 6.0

Quick Install

# Standard installation with OpenCV
pip install pixtreme[opencv]

# With OpenCV contrib modules
pip install pixtreme[opencv-contrib]

Development Setup

# Clone the repository
git clone https://github.com/sync-dev-org/pixtreme.git
cd pixtreme

# Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh

# Setup development environment
uv python pin 3.12
uv sync --extra dev --extra opencv

💡 Quick Start

import pixtreme as px

# Read image directly to GPU as float32 (BGR format)
image = px.imread("photo.jpg")

# All operations work on GPU memory
image_rgb = px.bgr_to_rgb(image)
image_hsv = px.rgb_to_hsv(image_rgb)

# High-quality resize with 11 interpolation methods
image = px.resize(image, (1920, 1080), interpolation=px.INTER_LANCZOS4)

# Choose backend based on your needs
upscaler = px.OnnxUpscaler("models/realesrgan.onnx")     # Balanced
# upscaler = px.TrtUpscaler("models/realesrgan.trt")     # Fastest
# upscaler = px.TorchUpscaler("models/realesrgan.pth")   # Most flexible

# Upscale with single method call
upscaled = upscaler.get(image)

# Professional color grading with 3D LUT
lut = px.read_lut("cinematic_look.cube")
graded = px.apply_lut(image, lut, interpolation=1)  # Tetrahedral

# Save with format-specific options
px.imwrite("output.jpg", graded, param=95)

📖 API Reference

🎮 Device Management

Function Parameters Returns Description
get_device_id() - int Get current CUDA device ID
get_device_count() - int Get number of available GPUs
Device(id) id: int Context manager Context manager for device selection

🎨 Color Module (pixtreme.color)

Basic Color Conversions

Function Parameters Returns Description
bgr_to_rgb(image) image: np.ndarray or cp.ndarray np.ndarray or cp.ndarray Convert BGR to RGB format
rgb_to_bgr(image) image: np.ndarray or cp.ndarray np.ndarray or cp.ndarray Convert RGB to BGR format
bgr_to_grayscale(image) image: cp.ndarray cp.ndarray Convert BGR to grayscale
rgb_to_grayscale(image) image: cp.ndarray cp.ndarray Convert to grayscale (Rec.709)
bgr_to_hsv(image) image: cp.ndarray cp.ndarray Convert BGR to HSV
hsv_to_bgr(image) image: cp.ndarray cp.ndarray Convert HSV to BGR
rgb_to_hsv(image) image: cp.ndarray cp.ndarray Convert RGB to HSV
hsv_to_rgb(image) image: cp.ndarray cp.ndarray Convert HSV to RGB

YCbCr/YUV Conversions

Function Parameters Returns Description
bgr_to_ycbcr(image) image: cp.ndarray cp.ndarray BGR to YCbCr (10-bit precision)
rgb_to_ycbcr(image) image: cp.ndarray cp.ndarray RGB to YCbCr (10-bit precision)
ycbcr_to_bgr(image) image: cp.ndarray cp.ndarray YCbCr to BGR conversion
ycbcr_to_rgb(image) image: cp.ndarray cp.ndarray YCbCr to RGB conversion
ycbcr_to_grayscale(image) image: cp.ndarray cp.ndarray Extract Y channel as grayscale
ycbcr_full_to_legal(image) image: cp.ndarray cp.ndarray Full to Legal range conversion
ycbcr_legal_to_full(image) image: cp.ndarray cp.ndarray Legal to Full range conversion
yuv420p_to_ycbcr444(yuv420_data, width, height, interpolation) yuv420_data: cp.ndarray, width: int, height: int, interpolation: int = 1 cp.ndarray YUV 4:2:0 to YCbCr 4:4:4
yuv420p_to_ycbcr444_cp(yuv420_data, width, height, interpolation) yuv420_data: cp.ndarray, width: int, height: int, interpolation: int = 1 cp.ndarray YUV 4:2:0 to YCbCr 4:4:4 (CuPy native)
yuv422p10le_to_ycbcr444(ycbcr422_data, width, height) ycbcr422_data: cp.ndarray, width: int, height: int cp.ndarray 10-bit YUV 4:2:2 to YCbCr 4:4:4
yuv422p10le_to_ycbcr444_cp(ycbcr422_data, width, height) ycbcr422_data: cp.ndarray, width: int, height: int cp.ndarray 10-bit YUV 4:2:2 to YCbCr 4:4:4 (CuPy)
uyvy422_to_ycbcr444(uyvy_data, height, width) uyvy_data: cp.ndarray, height: int, width: int cp.ndarray UYVY 4:2:2 to YCbCr 4:4:4
uyvy422_to_ycbcr444_cp(uyvy_data, height, width) uyvy_data: cp.ndarray, height: int, width: int cp.ndarray UYVY 4:2:2 to YCbCr 4:4:4 (CuPy native)
ndi_uyvy422_to_ycbcr444(uyvy_data) uyvy_data: cp.ndarray cp.ndarray NDI UYVY to YCbCr 4:4:4
ndi_uyvy422_to_ycbcr444_cp(uyvy_data) uyvy_data: cp.ndarray cp.ndarray NDI UYVY to YCbCr 4:4:4 (CuPy native)

ACES Color Pipeline

Function Parameters Returns Description
rec709_to_aces2065_1(image, tonemap) image: cp.ndarray, tonemap: bool = True cp.ndarray Rec.709 to ACES2065-1
aces2065_1_to_rec709(image, tonemap) image: cp.ndarray, tonemap: bool = True cp.ndarray ACES2065-1 to Rec.709
aces2065_1_to_acescct(image) image: cp.ndarray cp.ndarray ACES2065-1 to ACEScct (log)
aces2065_1_to_acescg(image) image: cp.ndarray cp.ndarray ACES2065-1 to ACEScg (linear)
acescct_to_aces2065_1(image) image: cp.ndarray cp.ndarray ACEScct to ACES2065-1
acescg_to_aces2065_1(image) image: cp.ndarray cp.ndarray ACEScg to ACES2065-1

3D LUT Processing

Function Parameters Returns Description
read_lut(file_path, use_cache, cache_dir) file_path: str, use_cache: bool = True, cache_dir: str = "cache" cp.ndarray Read .cube format LUT files
apply_lut(image, lut, interpolation) image: cp.ndarray, lut: cp.ndarray, interpolation: int = 0 cp.ndarray Apply 3D LUT (0=trilinear, 1=tetrahedral)
apply_lut_cp(image, lut, interpolation) image: cp.ndarray, lut: cp.ndarray, interpolation: int = 0 cp.ndarray Apply 3D LUT (CuPy native implementation)

🖼️ Draw Module (pixtreme.draw)

Function Parameters Returns Description
circle(image, center_x, center_y, radius, color) image: cp.ndarray, center_x: int, center_y: int, radius: int, color: tuple = (1.0, 1.0, 1.0) cp.ndarray Draw filled circle
rectangle(image, top_left_x, top_left_y, bottom_right_x, bottom_right_y, color) image: cp.ndarray, top_left_x: int, top_left_y: int, bottom_right_x: int, bottom_right_y: int, color: tuple = (1.0, 1.0, 1.0) cp.ndarray Draw filled rectangle
put_text(image, text, org, font_face, font_scale, color, thickness, line_type, density) image: cp.ndarray, text: str, org: tuple[int, int], font_face: int = cv2.FONT_HERSHEY_SIMPLEX, font_scale: float = 1.0, color: tuple = (1.0, 1.0, 1.0), thickness: int = 2, line_type: int = cv2.LINE_AA, density: float = 1.0 cp.ndarray Draw text with supersampling
add_label(image, text, org, font_face, font_scale, color, thickness, line_type, label_size, label_color, label_align, density) image: cp.ndarray, text: str, org: tuple = (0, 0), font_face: int = cv2.FONT_HERSHEY_SIMPLEX, font_scale: float = 1.0, color: tuple = (1.0, 1.0, 1.0), thickness: int = 2, line_type: int = cv2.LINE_AA, label_size: int = 20, label_color: tuple = (0.0, 0.0, 0.0), label_align: str = "bottom", density: float = 1.0 cp.ndarray Add labeled banner
create_rounded_mask(dsize, mask_offsets, radius_ratio, density, blur_size, sigma) dsize: tuple = (512, 512), mask_offsets: tuple = (0.1, 0.1, 0.1, 0.1), radius_ratio: float = 0.1, density: int = 1, blur_size: int = 0, sigma: float = 1.0 cp.ndarray Create rounded rectangle mask

🔨 Filter Module (pixtreme.filter)

Function Parameters Returns Description
gaussian_blur(image, kernel_size, sigma, kernel) image: cp.ndarray, kernel_size: int, sigma: float, kernel: cp.ndarray or None = None cp.ndarray Apply Gaussian blur
get_gaussian_kernel(ksize, sigma) ksize: int, sigma: float cp.ndarray Generate 1D Gaussian kernel
GaussianBlur(kernel_size, sigma) Class - kernel_size: int, sigma: float Class instance Gaussian blur filter class

🔄 Transform Module (pixtreme.transform)

Image Operations

Function Parameters Returns Description
resize(src, dsize, fx, fy, interpolation) src: cp.ndarray, dsize: tuple[int, int] or None = None, fx: float or None = None, fy: float or None = None, interpolation: int = INTER_AUTO cp.ndarray Resize image with 11 interpolation methods
affine_transform(src, M, dsize, flags) src: cp.ndarray, M: cp.ndarray, dsize: tuple, flags: int = INTER_AUTO cp.ndarray Apply affine transformation matrix
get_inverse_matrix(M) M: cp.ndarray cp.ndarray Calculate inverse transformation matrix
crop_from_kps(image, kps, size) image: cp.ndarray, kps: cp.ndarray, size: int = 512 tuple[cp.ndarray, cp.ndarray] Crop image based on keypoints
erode(image, kernel_size, kernel, border_value) image: cp.ndarray, kernel_size: int, kernel: cp.ndarray or None = None, border_value: float = 0.0 cp.ndarray Morphological erosion
create_erode_kernel(kernel_size) kernel_size: int cp.ndarray Create erosion kernel
stack_images(images, axis) images: list[cp.ndarray], axis: int = 0 cp.ndarray Stack multiple images
subsample_image(image, factor) image: cp.ndarray, factor: int cp.ndarray Fast downsampling
subsample_image_back(image, original_shape, factor) image: cp.ndarray, original_shape: tuple, factor: int cp.ndarray Upsample back to original
tile_image(input_image, tile_size, overlap) input_image: cp.ndarray, tile_size: int = 128, overlap: int = 16 tuple[list[cp.ndarray], tuple] Split image into tiles
merge_tiles(tiles, original_shape, padded_shape, scale, tile_size, overlap) tiles: list[cp.ndarray], original_shape: tuple[int, int, int], padded_shape: tuple[int, int, int], scale: int, tile_size: int = 128, overlap: int = 16 cp.ndarray Merge tiles with blending
add_padding(input_image, patch_size, overlap) input_image: cp.ndarray, patch_size: int = 128, overlap: int = 16 cp.ndarray Add padding for tiling
create_gaussian_weights(size, sigma) size: int, sigma: int cp.ndarray Create Gaussian weight map

Interpolation Constants

  • INTER_NEAREST = 0 - Nearest neighbor
  • INTER_LINEAR = 1 - Bilinear
  • INTER_CUBIC = 2 - Bicubic
  • INTER_AREA = 3 - Area-based resampling
  • INTER_LANCZOS4 = 4 - Lanczos (8x8)
  • INTER_AUTO = 5 - Auto-select
  • INTER_MITCHELL = 6 - Mitchell-Netravali
  • INTER_B_SPLINE = 7 - B-spline
  • INTER_CATMULL_ROM = 8 - Catmull-Rom
  • INTER_LANCZOS2 = 9 - Lanczos (4x4)
  • INTER_LANCZOS3 = 10 - Lanczos (6x6)

📁 I/O Module (pixtreme.io)

Function Parameters Returns Description
imread(input_path, dtype, swap_rb, is_nvimgcodec) input_path: str, dtype: str = "fp32", swap_rb: bool = False, is_nvimgcodec: bool = False cp.ndarray Read image to GPU (defaults to float32)
imwrite(output_path, image, param, swap_rb) output_path: str, image: cp.ndarray or np.ndarray, param: int = -1, swap_rb: bool = False None Write image with format-specific options
imencode(image, ext, param, swap_rb) image: cp.ndarray, ext: str = ".png", param: int = -1, swap_rb: bool = False bytes Encode image to memory
imdecode(src, dtype, swap_rb) src: bytes, dtype: str = "fp32", swap_rb: bool = False cp.ndarray Decode image from memory
imshow(title, image, scale, is_rgb) title: str, image: np.ndarray or cp.ndarray, scale: float = 1.0, is_rgb: bool = False None Display image
waitkey(delay) delay: int int Wait for keyboard input
destroy_all_windows() - None Close all OpenCV windows

🤖 Upscale Module (pixtreme.upscale)

Class Constructor Parameters Method Description
OnnxUpscaler model_path: str or None = None, model_bytes: bytes or None = None, device_id: int = 0, provider_options: list or None = None get(image: cp.ndarray) -> cp.ndarray ONNX Runtime upscaling
TrtUpscaler model_path: str or None = None, model_bytes: bytes or None = None, device_id: int = 0 get(image: cp.ndarray) -> cp.ndarray TensorRT optimized upscaling
TorchUpscaler model_path: str or None = None, model_bytes: bytes or None = None, device: str = "cuda" get(image: cp.ndarray) -> cp.ndarray PyTorch native upscaling

🔧 Utils Module (pixtreme.utils)

Type Conversions

Function Parameters Returns Description
to_uint8(image) image: np.ndarray or cp.ndarray np.ndarray or cp.ndarray Convert to 8-bit (0-255)
to_uint16(image) image: np.ndarray or cp.ndarray np.ndarray or cp.ndarray Convert to 16-bit unsigned
to_float16(image) image: np.ndarray or cp.ndarray np.ndarray or cp.ndarray Convert to 16-bit float
to_float32(image) image: np.ndarray or cp.ndarray np.ndarray or cp.ndarray Convert to 32-bit float (0-1)
to_float64(image) image: np.ndarray or cp.ndarray np.ndarray or cp.ndarray Convert to 64-bit float
to_dtype(image, dtype) image: np.ndarray or cp.ndarray, dtype: str np.ndarray or cp.ndarray Convert to specified dtype

Framework Interoperability

Function Parameters Returns Description
to_cupy(image) image: np.ndarray or torch.Tensor or nvimgcodec.Image cp.ndarray Convert to CuPy array
to_numpy(image) image: cp.ndarray or torch.Tensor or nvimgcodec.Image np.ndarray Convert to NumPy array
to_tensor(image, device) image: np.ndarray or cp.ndarray, device: str or torch.device or None = None torch.Tensor Convert to PyTorch tensor

Batch Processing

Function Parameters Returns Description
guess_image_layout(image) image: np.ndarray or cp.ndarray str Detect image layout (HW, HWC, CHW, etc.)
image_to_batch(image, size, scalefactor, mean, swap_rb, layout) image: cp.ndarray, size: int or tuple[int, int] or None = None, scalefactor: float or None = None, mean: float or tuple or None = None, swap_rb: bool = True, layout: str = "HWC" cp.ndarray Convert single image to batch
images_to_batch(images, size, scalefactor, mean, swap_rb, layout) images: list[cp.ndarray], size: int or tuple[int, int] or None = None, scalefactor: float or None = None, mean: float or tuple or None = None, swap_rb: bool = True, layout: str = "HWC" cp.ndarray Convert images to batch format
batch_to_images(batch, scalefactor, mean, swap_rb, layout) batch: cp.ndarray, scalefactor: float or tuple or None = None, mean: float or tuple or None = None, swap_rb: bool = True, layout: str = "NCHW" list[cp.ndarray] Convert batch to images

Model Conversion

Function Parameters Returns Description
check_torch_model(model_path) model_path: str bool Validate PyTorch model
check_onnx_model(model_path) model_path: str bool Validate ONNX model
torch_to_onnx(model_path, onnx_path, input_shape, opset_version, precision, dynamic_axes, device) model_path: str, onnx_path: str, input_shape: tuple = (1,3,1080,1920), opset_version: int = 20, precision: str = "fp32", dynamic_axes: dict or None = None, device: str = "cuda" None Convert PyTorch to ONNX
onnx_to_onnx_dynamic(input_path, output_path, opset, irver) input_path: str, output_path: str, opset: int or None = None, irver: int or None = None None Add dynamic shape support
onnx_to_trt(onnx_path, engine_path, precision, workspace) onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1<<30 None Convert ONNX to TensorRT
onnx_to_trt_dynamic_shape(onnx_path, engine_path, precision, workspace) onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1<<30 None TensorRT with dynamic shapes
onnx_to_trt_fixed_shape(onnx_path, engine_path, precision, workspace, input_shape) onnx_path: str, engine_path: str, precision: str = "fp16", workspace: int = 1<<30, input_shape: tuple = (1,3,1080,1920) None TensorRT with fixed shape

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

Authors

minamik (@minamikik)

Acknowledgments

sync.dev

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

pixtreme-0.3.10.tar.gz (7.9 MB view details)

Uploaded Source

Built Distributions

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

pixtreme-0.3.10-cp313-cp313-win_amd64.whl (5.1 MB view details)

Uploaded CPython 3.13Windows x86-64

pixtreme-0.3.10-cp313-cp313-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

pixtreme-0.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.3.10-cp312-cp312-win_amd64.whl (5.1 MB view details)

Uploaded CPython 3.12Windows x86-64

pixtreme-0.3.10-cp312-cp312-musllinux_1_2_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

pixtreme-0.3.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.3.10-cp311-cp311-win_amd64.whl (5.1 MB view details)

Uploaded CPython 3.11Windows x86-64

pixtreme-0.3.10-cp311-cp311-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

pixtreme-0.3.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pixtreme-0.3.10-cp310-cp310-win_amd64.whl (5.1 MB view details)

Uploaded CPython 3.10Windows x86-64

pixtreme-0.3.10-cp310-cp310-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

pixtreme-0.3.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pixtreme-0.3.10.tar.gz.

File metadata

  • Download URL: pixtreme-0.3.10.tar.gz
  • Upload date:
  • Size: 7.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pixtreme-0.3.10.tar.gz
Algorithm Hash digest
SHA256 3b11a098fa45086de1a96e933e4284699eb8fd9e92b984556b25163fb53597e6
MD5 b6a8efb01d01fc3f21cdea0b92c1df52
BLAKE2b-256 9770f83a8e7b7068554a75cbfb7c43aa8ec5820fe94705f96a902ce7e5566ced

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.10-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 5.1 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

Hashes for pixtreme-0.3.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2680588bf18f565525f498a10f122aeb141ec1501c2028b447fdb5cfe95018bb
MD5 1c6f47fd904c408daf00e58014e8e636
BLAKE2b-256 1e28b58b669342ed6d63ec147a5c07db8757620a1179de4c43c10904f1e04c89

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 78c48dfcfdb327ed1f4ccbae54bfae44b01b532e88e29247a18b6a295f381a74
MD5 1e9afe78d6765ab1ee2a0f590aa25974
BLAKE2b-256 a6c3de4d96e477715da167aa2b27faef9f4ed7759c2638d44591ed2fd6ca05b4

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59580e86daf74aaa96ae82721aa9e5746ebe92d94e07ab99c99cd7dddebc192b
MD5 6f8dc6556ab155d7161534aff0b7c27b
BLAKE2b-256 d4416c1cbd0bd73ba192ff9cc64cedf60a4bfc4cac14693763c1e6ea74a721b3

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 5.1 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

Hashes for pixtreme-0.3.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e654b00411da03735bf61fc9dbcb38cdb10c68f2585b6f2b253a9607a0920ac1
MD5 c884d58daf1226d6f3e98783fbeb2d60
BLAKE2b-256 3eed7f0a83d7a9e7e779e6d18af6bfc39585c72f0971f3a224c96b7ad55d7f1f

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9d9a992fbb9dd73ca71a743e18678317360905dac2dad774bc035cca403c1ea4
MD5 7ca8adc057f8d8229cec605424fff71c
BLAKE2b-256 2b904d5baa0e68420f24523ec69fb890e9d6d7efa79f226f5b4a1bba79ebe133

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fe2fc6e9ddca66d8441f72b62dbc6684a2ee9b4633d72326798a08866bbd9300
MD5 b0388ca95c2ab6864f08a95b36bc30e9
BLAKE2b-256 11ceaa8d5d1b8fc47db4f4d07b260c3a614606fef2b83b9ba11ffa13a2057d5f

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.10-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 5.1 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

Hashes for pixtreme-0.3.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2914dc0142c063396629365b6860d050e0e95f8ac849ae7b8a6632ae013efb7c
MD5 af4bb0de1bbaf70cb657cdb780183a9f
BLAKE2b-256 6ef80b94da2b68c2f714fe1c43d71af0d57d840db5fdd5c83e861e93b699caf1

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b68ef61f57d76dc09f353d0232101de86156fe8b52b1161a603eb85a520078f5
MD5 b37daa49dff5b97f50e2c18f37e1b69d
BLAKE2b-256 b938a158ccd320ee3294050757b78666436e846ff66ef1fb3dfe72c7570eeffa

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 df3266618122bd673d6bd9118cc5f321beec65dd7aad3b88327cb43aac19363b
MD5 57fcc041c346f5fe20b325800607f012
BLAKE2b-256 32780eaee6229711f2447645b1389741764e3db93f6fbb6be71789e3e4e10b6f

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pixtreme-0.3.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 5.1 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

Hashes for pixtreme-0.3.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4a3dfe05ed271535b542cc024b6be94ac03973fc07acd60bbdedf4b57908a71e
MD5 2f4da6f8a38879ae16f6512d335c4f1e
BLAKE2b-256 f15fd985c0077579f28def7d6943153c152a70a8a98ad58e2f8fb45bc1fb856f

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b41da145b31f1748b514498abdefb47952d92cb059479c95bf19fb683921fa1e
MD5 bbb2f27e0066252860ed260fbc78425f
BLAKE2b-256 2b9ea5bcbdc5856ecd69810b54df9617d258b90cb2ac25336165388f39a527c2

See more details on using hashes here.

File details

Details for the file pixtreme-0.3.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pixtreme-0.3.10-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 141e462419b8836042d6b5e94bb9aef4fa628fe9b4048c55bdf6257f0778b3ca
MD5 9b4c9916fbc91f79643e5537e28f07f7
BLAKE2b-256 f3457e3e142f8c63f493c373e4f73f527b9e68c5abab89e02eaac967fe06fd36

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