Convert Paint.NET (.pdn) files to OpenRaster (.ora) format
Project description
pdn2ora
This cross-platform CLI tool converts Paint.NET (.pdn) files to OpenRaster (.ora) format, preserving all layer properties, blend modes, opacity, and visibility.
Paint.NET's native format is proprietary; this opens up your artwork for use in Krita, GIMP, and other open-source editors.
Supports recursive batch conversion, dry-run previews, post-conversion validation, and standalone binaries for Linux and Windows.
- Codeberg (main): https://codeberg.org/marvin1099/pdn2ora
- GitHub (mirror): https://github.com/marvin1099/pdn2ora
- PyPI: https://pypi.org/project/pdn2ora/
Install
# With uv (recommended)
uv tool install pdn2ora
# Or with pipx
pipx install pdn2ora
# Or with pip
pip install --user pdn2ora
Or install from git:
git clone https://codeberg.org/marvin1099/pdn2ora.git
cd pdn2ora
# With uv (recommended)
uv tool install .
# Or with pipx
pipx install .
# Or with pip
pip install --user .
Binary downloads
Instead of installing from source, get pre-compiled binaries from the releases page, or build binaries using
# if not cloned yet
git clone https://codeberg.org/marvin1099/pdn2ora.git
cd pdn2ora
./build.sh linux # Linux binary → dist/pdn2ora-linux-x64
./build.sh windows # Windows binary via Wine → dist/pdn2ora-win-x64.exe
./build.sh all # both
Development
# if not cloned yet
git clone https://codeberg.org/marvin1099/pdn2ora.git
cd pdn2ora
./build.sh setup # install all deps
./build.sh test # run tests
./build.sh lint # check code style
Usage
pdn2ora [options] FILE_OR_DIR [FILE_OR_DIR ...]
Examples
pdn2ora input.pdn # single file
pdn2ora ./artwork/ -r -D ./output/ # recursive batch to output dir
pdn2ora input.pdn --info # show layer info
pdn2ora *.pdn -d -y # convert and delete sources
Options
| Flag | Description |
|---|---|
| Output | |
-o, --output PATH |
Explicit output path (single file only) |
-D, --output-dir DIR |
Put all ORA files into DIR |
-s, --suffix EXT |
Output file extension (default: .ora) |
-w, --overwrite |
Overwrite existing output files |
-t, --no-thumbnail |
Skip thumbnail generation |
| Conversion | |
-r, --recursive |
Recursively search directories |
-d, --delete |
Delete source .pdn after successful conversion |
-x, --delete-only |
Delete .pdn if .ora already exists |
-A, --validate |
Validate the ORA file after writing |
| Info | |
-i, --info |
Show PDN file info and exit |
-S, --stats |
Show file size comparison |
| General | |
-v, --verbose |
Increase verbosity (-v info, -vv debug) |
-y, --yes |
Skip confirmation prompts |
-n, --dry-run |
Show what would be done without doing it |
-V, --version |
Show version |
-h, --help |
Show help |
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 Distribution
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 pdn2ora-0.1.1.tar.gz.
File metadata
- Download URL: pdn2ora-0.1.1.tar.gz
- Upload date:
- Size: 21.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64ed8cbaeaa5919a6eefecdbb565836153972406be88c1fb38b04871ae0563e8
|
|
| MD5 |
b574a3452e7ef990ab7594c0cdfa2588
|
|
| BLAKE2b-256 |
8ca3a22f4ef74091b922d163985520136ca6ffd7893192fe37cf8f83195855f6
|
File details
Details for the file pdn2ora-0.1.1-py3-none-any.whl.
File metadata
- Download URL: pdn2ora-0.1.1-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6702843debaeb746680626e808e77ea39514b09890db94338eab5da2c1c46c1b
|
|
| MD5 |
5a9e8ce09de7212292a7060f6d5ba312
|
|
| BLAKE2b-256 |
71f44ccced9200c7bd058b77357d2043adf467435fffe6204daeaf4426f7ee91
|