Convert PSD to PNG: 4 Free Methods That Preserve Transparency
PSD files are great for editing, but terrible for sharing. They need Photoshop (or a Photoshop-aware tool) to open, and nobody is putting a 200MB layered file in a website or email. PNG solves this: it flattens the image into a universally supported format while keeping what matters most — transparency.
If your PSD has transparent areas, cutout objects, or semi-transparent layers, PNG is the right export target. Unlike JPG, which fills transparent pixels with white, PNG preserves full alpha-channel transparency. It also uses lossless compression, so text, sharp edges, and fine details stay crisp instead of getting smeared by JPEG artifacts.
The four methods below all handle PSD-to-PNG conversion with transparency preservation. They differ in automation potential, OS support, and how they deal with layers.
Methods at a Glance
| Method | OS | Batch | License | Best For |
|---|---|---|---|---|
| ImageMagick 7.1 | Win/Mac/Linux | Yes | Apache 2.0 | CLI automation, quick one-offs |
| GIMP 2.10 | Win/Mac/Linux | Via Script-Fu | GPL v3 | Visual inspection, selective layer export |
| Python psd-tools 2.0 + Pillow 10.2 | Any | Yes | MIT / MIT-CMU | Scripted pipelines, CI/CD integration |
| XnConvert 1.99 | Win/Mac/Linux | Yes | Freeware (personal) | Drag-and-drop batch conversion |
Need to compress your PNGs?
After converting, compress your PNGs instantly in the browser — free, no upload needed.
Try it yourself
Convert between any image format instantly — free, instant, no signup. Your images never leave your browser.
Method 1: ImageMagick 7.1 (CLI)
License: Apache 2.0 (free for commercial use)
ImageMagick reads PSD natively and flattens all visible layers into a single composite. Transparent areas become PNG alpha. This is the fastest path for single files and shell scripts.
Install
# Ubuntu/Debian
sudo apt install imagemagick
# macOS (Homebrew)
brew install imagemagick
# Windows (Chocolatey)
choco install imagemagick --version=7.1.1.38
Convert a Single File
magick design.psd design.png
ImageMagick 7.1 flattens the PSD composite and preserves the alpha channel automatically. The output PNG includes transparency wherever the PSD had it.
Force a White Background
If you want to flatten transparency onto white instead of keeping it transparent:
magick design.psd -background white -flatten design.png
Batch Convert a Folder
for f in *.psd; do
magick "$f" "${f%.psd}.png"
done
Export Individual Layers
PSD files contain multiple layers. ImageMagick exposes them as numbered frames:
magick design.psd[0] layer-0.png
magick design.psd[1] layer-1.png
Index [0] is the composite (flattened view). Indexes [1], [2], etc. are individual layers from bottom to top.
Method 2: GIMP 2.10 (GUI)
License: GPL v3 (free and open source)
GIMP imports PSD files with full layer structure intact — including layer names, blending modes, and visibility. This makes it the best option when you need to inspect layers before exporting.
Install
Download GIMP 2.10 from gimp.org/downloads. Available for Windows, macOS, and Linux. On Ubuntu:
sudo apt install gimp
Convert Step by Step
- Open GIMP. Go to File > Open and select your
.psdfile. - GIMP imports all layers. The Layers panel shows them with their original names and visibility.
- To export the flattened composite: File > Export As, choose PNG, and click Export.
- In the PNG export dialog, ensure Save background color is unchecked (this preserves transparency).
Export a Single Layer
- In the Layers panel, hide all layers except the one you want (click the eye icon).
- Right-click the visible layer > Flatten Image (or use Image > Flatten Image to merge onto the canvas).
- File > Export As > choose PNG.
Batch with Script-Fu
GIMP supports batch processing via Script-Fu (a Scheme dialect). Save this as psd-to-png.scm:
(let* (
(image (car (gimp-file-load RUN-NONINTERACTIVE "input.psd" "input.psd")))
(drawable (car (gimp-image-flatten image)))
)
(file-png-save RUN-NONINTERACTIVE image drawable "output.png" "output.png" 0 9 1 1 1 1 1)
(gimp-image-delete image)
)
Run from the terminal:
gimp -i -b '(gimp-script-fu-interpreter 0 0 "psd-to-png.scm")' -b '(gimp-quit 0)'
GIMP's batch mode is powerful but verbose. For serious batch work, ImageMagick or Python is more ergonomic.
Method 3: Python psd-tools 2.0 + Pillow 10.2
License: MIT (psd-tools) / MIT-CMU (Pillow) — both free for commercial use
This is the developer's choice. A Python script gives you full control over how layers are handled, and it slots into any CI/CD pipeline or build script.
Install
pip install psd-tools==2.0.4 Pillow==10.2.0
Convert a Single File
from psd_tools import PSDImage
psd = PSDImage.open("design.psd")
composite = psd.composite()
composite.save("design.png")
The composite() method flattens all visible layers — respecting blending modes, opacity, and masks — and returns a Pillow Image object with an alpha channel.
Export Individual Layers
from psd_tools import PSDImage
psd = PSDImage.open("design.psd")
for i, layer in enumerate(psd):
if layer.is_visible():
image = layer.composite()
image.save(f"layer-{i}-{layer.name}.png")
Each layer exports as a separate PNG with its own transparency.
Batch Convert a Directory
from pathlib import Path
from psd_tools import PSDImage
input_dir = Path("psd_files")
output_dir = Path("png_output")
output_dir.mkdir(exist_ok=True)
for psd_path in input_dir.glob("*.psd"):
psd = PSDImage.open(psd_path)
composite = psd.composite()
composite.save(output_dir / f"{psd_path.stem}.png")
print(f"Converted {psd_path.name}")
Control Output Quality
Pillow lets you tune PNG compression (0 = no compression, 9 = maximum compression). Higher compression saves disk space but takes longer to encode:
composite.save("design.png", compress_level=9)
This is lossless — compress_level affects file size and encoding time, not image quality. For further size reduction after conversion, compress the PNG with quantization tools.
Method 4: XnConvert 1.99 (NConvert CLI)
License: Freeware for personal use (commercial license required for business use)
XnConvert provides a GUI for drag-and-drop batch conversion. Its CLI companion, NConvert, handles the same job from the terminal. Both are part of the XnView suite.
Install
Download XnConvert 1.99 from xnview.com/en/xnconvert. Available for Windows, macOS, and Linux.
For NConvert (CLI), download from xnview.com/en/nconvert.
GUI: Drag-and-Drop Conversion
- Open XnConvert.
- Drag PSD files onto the Input tab.
- In the Output tab, set format to PNG.
- Check Keep transparency in the output settings.
- Set the output folder and click Convert.
XnConvert processes all files in the queue and preserves transparency by default when converting to PNG.
CLI: NConvert Batch
nconvert -out png -keepfiledate -o output_dir/%.png *.psd
This converts every PSD in the current directory to PNG. The %.png token uses the original filename with a .png extension.
NConvert with Transparency
NConvert preserves transparency by default when converting PSD to PNG. To force a specific background color instead:
nconvert -out png -bgcolor 255 255 255 -o output_dir/%.png *.psd
PNG vs JPG: Which Format for Your PSD?
Converting to PNG is not always the right call. If your PSD is a photograph with no transparency, JPG produces smaller files with minimal visible quality loss. Here is when to choose each:
| Factor | PNG | JPG |
|---|---|---|
| Transparency | Full alpha channel preserved | No transparency — filled with white |
| Compression | Lossless — pixel-perfect output | Lossy — some detail discarded |
| File size | Larger (2-10x for photos) | Smaller |
| Best image types | Logos, icons, screenshots, UI mockups, text | Photos, gradients, complex scenes |
| Editing | Safe to re-edit (no generation loss) | Each save degrades quality further |
| Web use | Ideal for graphics with sharp edges | Ideal for hero images and photo galleries |
Rule of thumb: If the PSD has transparent areas or sharp text, convert to PNG. If it is a photograph with no transparency, convert to JPG instead. For web delivery, consider converting to WebP or AVIF for even smaller files.
Layer Handling: Composite vs Individual Export
Every PSD contains a pre-rendered composite (the flattened preview) and individual layers. How you export depends on what you need:
Composite export flattens all visible layers into a single PNG. This is what you get from magick design.psd design.png or psd.composite() in Python. It respects layer visibility, blending modes, opacity, and masks. Use this when you want the final design as one image.
Individual layer export saves each layer as a separate PNG file. Each layer keeps its own transparency. This is useful for:
- Extracting assets from a design comp (icons, buttons, backgrounds)
- Preparing sprite sheets
- Feeding layers into different parts of a web page
ImageMagick, GIMP, and psd-tools all support individual layer export, as shown in the examples above. XnConvert handles composite export only.
One thing to watch: individual layers export at the PSD canvas size by default. If you need cropped-to-content layers (no surrounding whitespace), use psd-tools:
layer_image = layer.composite()
cropped = layer_image.crop(layer_image.getbbox())
cropped.save(f"{layer.name}.png")
Handling Common PSD Issues
Adjustment Layers and Smart Objects
ImageMagick and XnConvert read the PSD composite, so adjustment layers (Curves, Levels, Hue/Saturation) are already baked in. GIMP imports some adjustment layers but ignores others — always compare the GIMP render against the original Photoshop preview.
psd-tools 2.0 handles most adjustment layers in its composite() method, but complex smart objects may not render identically. If pixel-perfect accuracy matters, flatten in Photoshop first or verify the output against a reference.
CMYK PSD Files
PSD files for print are often in CMYK color mode. PNG is an RGB format, so conversion requires a color space transform:
magick design.psd -colorspace sRGB design.png
In Python:
composite = psd.composite()
if composite.mode == "CMYK":
composite = composite.convert("RGBA")
composite.save("design.png")
Colors will shift slightly during CMYK-to-RGB conversion — this is unavoidable because CMYK and RGB have different gamuts.
Large PSD Files
PSD files over 2GB use the PSB (Large Document Format) extension. ImageMagick 7.1 reads PSB files the same way as PSD. psd-tools also supports PSB. GIMP 2.10 can open PSB files but may be slow with very large canvases.
FAQ
Can I convert PSD to PNG without Photoshop?
Yes. All four methods in this guide are free and do not require Photoshop. ImageMagick, GIMP, Python with psd-tools, and XnConvert all read PSD files natively.
Does converting PSD to PNG lose quality?
No. PNG uses lossless compression, so the pixel data is preserved exactly. The only "loss" is that layers are flattened into a single image — the original layer structure is gone. Keep the PSD file if you need to edit layers later.
How do I keep transparency when converting PSD to PNG?
All four methods preserve transparency by default when the PSD has an alpha channel. The key is to avoid adding -flatten (ImageMagick) or -bgcolor (NConvert) flags, which composite transparency onto a solid background.
Can I convert PSD to PNG on my phone?
Not with the tools listed here. For mobile, upload the PSD to a cloud service and use a web-based converter — or use Pixotter's conversion tools directly in your mobile browser.
What is the maximum PSD file size these tools handle?
ImageMagick 7.1 and psd-tools handle files up to several GB (including PSB format). GIMP 2.10 can open large files but may run slowly above 1GB. XnConvert works well up to about 500MB.
How do I batch convert hundreds of PSD files?
ImageMagick's shell loop, the Python script, or NConvert's CLI are all built for batch work. For hundreds of files, the Python script offers the most control — you can add logging, error handling, and parallel processing with concurrent.futures.
Should I convert PSD to PNG or WebP?
PNG is the safe choice when you need universal compatibility and transparency. WebP offers smaller files with both lossy and lossless options, but older browsers and some desktop applications still lack support. For web delivery, convert to PNG first, then use Pixotter to compress or convert to WebP as needed.
How do I make the PNG background transparent after conversion?
If the PSD already has transparency, PNG preserves it automatically. If the PSD has a solid background you want to remove, use a background removal tool after conversion.
Next Steps
Once your PNGs are ready, they are probably larger than they need to be — especially if they came from high-resolution PSD files. Compress your PNGs to cut file size by 40-70% without visible quality loss, or learn more about reducing image file sizes across your entire workflow.
For the opposite conversion — when you need a JPG instead — see the companion guide on converting PSD to JPG.
Try it yourself
Ready to convert formats? Drop your image and get results in seconds — free, instant, no signup. Your images never leave your browser.