Skip to main content

README.md

adaptive-pixelizer

PyPI version License: MIT

adaptive-pixelizer is a simple GUI tool to pixelate images by averaging colors within a user-defined grid. It's designed for easily converting high-resolution pixel art or photos into a low-resolution, dot-art style with interactive editing capabilities.

Features

  • Three-Step Workflow:
    1. Initial Grid Setup: Define the initial grid size and color calculation method.
    2. Interactive Grid Editing: Manually add, delete, and move grid lines directly on the image.
    3. Color Editing: Select and edit the colors of the generated pixels.
  • Grid Editing Operations:
    • Shift + Left Click: Add vertical line
    • Shift + Right Click: Add horizontal line
    • Ctrl + Click: Delete line under cursor
    • Drag line: Move line
    • Delete/Backspace: Delete line under cursor
  • Color Editing Operations (Step 3):
    • Click: Select/deselect individual pixel.
    • Shift + Click: Select/deselect all pixels of the same color.
    • Drag: Select/deselect pixels within the dragged area.
    • Click outside pixels: Deselect all pixels.
    • Edit Button / Menu: Change the color of selected pixels.
  • Zoom and Pan: Easily navigate large images (Mouse wheel, Alt+Drag).
  • Multiple Color Calculation Methods: Choose between Average, Median, or Mode for pixelation.
  • Real-time Preview: See the pixelated result instantly (can be toggled on/off for grid editing).
  • Undo/Redo: Supports undo/redo for grid modifications and color edits (including selection state).
  • Simple Interface: Lightweight and easy to use.

Installation

You can install adaptive-pixelizer using pip:

pip install adaptive-pixelizer

Optional Dependencies:

For potentially faster median color calculation, NumPy is recommended:

pip install adaptive-pixelizer[numpy]
# or just "pip install numpy" separately

Usage

  1. Launch the application by typing the following command in your terminal:

    adaptive-pixelizer
    
  2. Step 1: Initial Grid

    • Click "画像ファイルを開く" (Open Image File) to load an image.
    • Adjust the initial grid size using the spinboxes ("横", "縦").
    • Select the color calculation method ("平均", "中央値", "最頻色").
    • The preview updates automatically (if "プレビュー自動更新" is checked). Click "プレビュー更新" for manual update.
    • Click "グリッド編集へ進む →" to proceed.
  3. Step 2: Grid Editing

    • Edit the grid lines on the left panel (original image) using the operations described in Features.
    • You can change the color calculation method here as well.
    • The preview updates based on the grid changes.
    • Click "色編集へ進む →" to finalize the grid and proceed.
    • Click "← 初期グリッドに戻る" to discard grid edits and return to Step 1.
  4. Step 3: Color Editing

    • Select pixels on the left panel (now showing pixelated blocks) using the color editing operations.
    • Click "選択ピクセルを編集..." to open the color dialog and change the color of the selected pixels.
    • Undo/Redo works for color changes and restores the selection state before the change.
    • Click "← グリッド編集に戻る" to discard color edits and return to Step 2.
  5. Saving:

    • Once satisfied with the result (usually after Step 3), save the processed image using "ファイル" > "名前を付けて保存...".

Requirements

  • Python 3.8 or later
  • PyQt6 >= 6.4
  • Pillow >= 9.0
  • NumPy (Optional, >= 1.20 recommended for Median calculation)
  • OS: Primarily tested on macOS, should work on Windows/Linux.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing / Issues

Metadata

Release files for adaptive-pixelizer 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for adaptive-pixelizer 0.2.0
File Size Uploaded Provenance
adaptive_pixelizer-0.2.0.tar.gz 41.0 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for adaptive-pixelizer 0.2.0
File Interpreter ABI Platform
adaptive_pixelizer-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 81.5 kB

Release files / adaptive_pixelizer-0.2.0.tar.gz

Download URL adaptive_pixelizer-0.2.0.tar.gz
Size 41.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a3fa2af5bad808b3316b7dc2f0c58b779e5a2aa01a8d860271d5f5f641e31e9d
BLAKE2b-256 checksum
How to use checksums
02ea69cfbd9e8fe7e31a1ec856102171ad8e6626d696d14dafa28547739157f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / adaptive_pixelizer-0.2.0-py3-none-any.whl

Download URL adaptive_pixelizer-0.2.0-py3-none-any.whl
Size 40.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e86979f147c7441630e007332b2a0e1036fe5f0c5d7348bf578ce4836db73609
BLAKE2b-256 checksum
How to use checksums
b0829d9cc691883eea759adb6c7954062210600d93e49a98a3269b0e58e070ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Security for adaptive-pixelizer 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page