The problem
If you've ever needed to quickly edit, convert, or compress an image, you know the drill: open a website, dodge three ads, upload your file, wait, download, and hope it didn't watermark your output or cap you at "3 free conversions per day."
I hit this wall one too many times while batch-processing images for a project, so I built APIC — Advanced Image Processing Center — a free, local-first desktop app that handles the whole workflow.
What it does
Edit — quick image adjustments, no bloated interface
Convert — switch between formats instantly
Compress — reduce file size while preserving quality
Search — locate images in your library fast
Batch Processing — apply operations across many files at once
Everything runs locally. No uploads, no cloud processing, no accounts.
The stack
APIC is built with Python 3 and PyQt6. A few architecture decisions worth mentioning:
Modular mode system — Home, Edit, Convert, Compress, and Search are each self-contained modules (modules/edit_mode.py, modules/convert_mode.py, etc.), swapped in and out via a QStackedWidget. This kept the codebase easy to extend — adding a new mode is mostly "build the widget, register it, add a nav button."
python
from modules.edit_mode import EditMode
from modules.convert_mode import ConvertMode
from modules.compress_mode import CompressMode
from modules.search_mode import SearchMode, AboutScreen
Custom sidebar navigation — a hand-built Sidebar class with active-state highlighting, rather than relying on Qt's default tab widgets, to get a more native, opinionated UI feel.
Global keyboard shortcuts and drag-and-drop — wired at the QMainWindow level so file handling feels consistent no matter which mode you're in.
Custom dark theme — a full stylesheet (themes/dark_theme.py) rather than default Qt styling, because default PyQt apps tend to look like they escaped from 2011.
Why PyQt6 over Electron
I wanted something that launches fast, feels native, and doesn't ship a bundled Chromium instance for what is fundamentally a desktop utility app. PyQt6 gave me native performance with enough flexibility to build a custom look without fighting the framework.
Try it
APIC is free, requires no sign-up, and doesn't send your images anywhere — everything happens on your machine.
📥 Download: https://github.com/Akhouri-Anmol-Kumar/APIC
I built this solo under my dev label, Akhouri Systems, and I'm actively iterating on it. If you're a Python/PyQt dev, I'd genuinely love feedback on the architecture — and if you just need a decent free image tool, I hope it saves you the four-tabs-of-ads experience I was dealing with.
Bug reports, feature requests, and brutal code reviews all welcome in the comments 🙏
APIC
"We Build What Others Forgot To Fix"
Top comments (0)