HomeGuidesHow to Convert PNG to JPG in Bulk
Guide

How to Convert PNG to JPG in Bulk

3 methods — PixelForge, macOS Preview, and Python

PNG files are lossless and great for editing, but JPEG is usually much smaller for photos without transparency. Here are three ways to convert PNG to JPEG in bulk, with tips on handling transparency correctly.

Method 1: Using PixelForge (fastest, no software needed)

Convert hundreds of PNGs at once in your browser — no download required.

  1. 1Go to the Bulk Image Convert tool on PixelForge.
  2. 2Upload your PNG images or a ZIP of PNGs.
  3. 3Select JPEG as the output format.
  4. 4Set the background color for transparent areas (white is the default).
  5. 5Set output quality (80–90% recommended for photos).
  6. 6Click Process and download the converted JPEGs as a ZIP.

PixelForge lets you choose the background fill color for transparent PNG areas. White is standard for photos; choose black for dark-background images.

Method 2: Using macOS Preview

Built into every Mac — good for small batches without any extra software.

  1. 1Select all your PNG files in Finder.
  2. 2Right-click → Open With → Preview.
  3. 3In Preview, select all images (Cmd+A).
  4. 4Go to File → Export Selected Images.
  5. 5Choose JPEG as the format and set your quality, then click Choose.

Preview exports each image individually into the destination folder. Transparent areas are filled with white automatically.

Method 3: Using Python (Pillow)

Best for automated pipelines or batches of thousands of files.

  1. 1Install Pillow: pip install Pillow
  2. 2Run the script below — it handles transparency by filling with white.

python

from PIL import Image
import os

input_dir = "./png-files"
output_dir = "./jpeg-output"
os.makedirs(output_dir, exist_ok=True)

for filename in os.listdir(input_dir):
    if filename.lower().endswith(".png"):
        img = Image.open(os.path.join(input_dir, filename))

        # Handle transparency by compositing onto white background
        if img.mode in ("RGBA", "LA", "P"):
            background = Image.new("RGB", img.size, (255, 255, 255))
            background.paste(img, mask=img.split()[-1] if img.mode == "RGBA" else None)
            img = background
        else:
            img = img.convert("RGB")

        out_name = os.path.splitext(filename)[0] + ".jpg"
        img.save(os.path.join(output_dir, out_name), "JPEG", quality=85)
        print(f"Converted {filename} → {out_name}")

print("Done!")

Change (255, 255, 255) to (0, 0, 0) for a black background fill instead of white.

Frequently asked questions

Will I lose quality converting PNG to JPEG?

Yes — JPEG is a lossy format, so some quality is lost. However, at 80–90% quality the difference is usually imperceptible. If lossless quality is essential, keep images in PNG or convert to WebP instead.

What happens to PNG transparency when converting to JPEG?

JPEG doesn't support transparency, so transparent areas are filled with a background color (usually white or black depending on the tool). PixelForge lets you choose your background color before converting.

Should I convert PNG to JPEG or WebP?

For web use, WebP is usually the better choice — it achieves JPEG-like file sizes while preserving transparency. Convert to JPEG only when you need maximum compatibility with older systems or when the images don't have transparency.

How do I convert hundreds of PNGs to JPEG at once?

Use PixelForge. Upload a ZIP of your PNG files, add a Convert operation with target format JPEG, and download the converted files as a ZIP.

Ready to try the fastest method?

Convert images between JPG, PNG, and WebP formats in bulk. Fast, free, and browser-based.

Convert Format — free