Ein 1920 × 1080 großes 24-Bit-BMP belegt knapp 6 MB. Dieselbe Aufnahme als JPEG mit Qualität 90 liegt meist unter 500 KB. An diesem Unterschied von etwa zehn zu eins liegt es, dass BMP-Dateien in älteren Scannern, medizinischer Software und Windows-Interna immer noch auftauchen – und dass sie fast immer konvertiert werden müssen, bevor sie woanders verwendet werden können.
BMPs Stärke ist seine Einfachheit. Gute Konvertierung bedeutet, zu wissen, wann diese Einfachheit hilft, wann sie im Weg ist und welches Zielformat tatsächlich zum Job passt.
Warum BMP noch existiert
BMP speichert Pixel mit minimalem Header-Overhead. Keine Huffman-Tabellen, kein DEFLATE-Zustandsautomat, kein Chroma-Subsampling. Für eingebettete Systeme, ältere Windows-Tools und jede Situation, in der „Header lesen, Bytes kopieren“ die gesamte Aufgabe ist, ist diese Einfachheit ein echter Vorteil.
Dieselben Einschränkungen haben BMP aus dem Alltag verdrängt:
- Keine effektive Kompression. Unkomprimierte BMPs sind groß. RLE-Varianten existieren, schlagen aber selten moderne Codecs.
- Kein verlässlicher Alpha-Kanal. Das Alpha-Byte von 32-Bit-BMP wird von Tools unterschiedlich interpretiert.
- Bottom-up-Zeilenreihenfolge. Die meisten BMPs speichern Zeilen von unten nach oben, was einen kleinen Konvertierungsschritt nötig macht, wenn das Zielformat Top-down erwartet.
- Kein Metadaten-Ökosystem. Kein EXIF, keine ICC-Profilunterstützung im klassischen Header, keine Animation.
Für Archivierung oder Kompatibilität ist BMP in Ordnung. Für Web, E-Mail, Mobil oder Speichereffizienz muss es in etwas anderes umgewandelt werden.
Das richtige Ausgabeformat wählen
Bevor Sie einen Befehl ausführen oder Code schreiben, entscheiden Sie, worauf Sie optimieren.
| Ziel | Verwendung | Kompromiss |
|---|---|---|
| JPG | Fotos, Vorschauen, jede Bildschirmanzeige | Verlustbehaftet, aber winzige Dateigröße |
| PNG | Grafiken, Screenshots, alles mit Transparenz | Verlustfrei, für Fotos größer als JPG |
| WebP | Modernes Web, Apps, überall wo Bandbreite zählt | Kleiner als JPG/PNG, breite Browserunterstützung |
Wenn Sie ein gescanntes Dokument mit Text und Diagrammen konvertieren, hält PNG Kanten scharf. Bei Fotos von einem alten Gerät ist JPG oder WebP die bessere Wahl. Für die Web-Auslieferung gewinnt WebP meist an Größe.
Unsere browserbasierten BMP to JPG-, BMP to PNG- und BMP to WebP-Konverter verarbeiten alle drei Fälle lokal – Ihre Datei bleibt dabei auf Ihrem Gerät.
Konvertierung unter Windows
Paint
- Öffnen Sie das BMP in Paint.
- Wählen Sie Datei > Speichern unter.
- Wählen Sie JPEG-Bild, PNG-Bild oder WebP-Bild.
- Speichern.
Paint reicht für Einzeldateien. Es bietet keine Qualitätskontrolle und keine Batch-Option, daher ist es für ganze Ordner unpraktisch.
PowerShell (ImageMagick)
Installieren Sie ImageMagick über den offiziellen Installer:
magick input.bmp output.jpg
magick input.bmp output.png
magick input.bmp output.webp
Für die Batch-Konvertierung in einem Ordner:
Get-ChildItem *.bmp | ForEach-Object {
magick $_.FullName ($_.BaseName + ".jpg")
}
PowerShell ohne externe Tools
Windows 10 und 11 enthalten den .NET-Imaging-Stack. Das funktioniert für BMP zu JPG und PNG, nicht aber für WebP ohne Zusatzbibliothek:
Add-Type -AssemblyName System.Drawing
$img = [System.Drawing.Image]::FromFile("input.bmp")
$img.Save("output.jpg", [System.Drawing.Imaging.ImageFormat]::Jpeg)
$img.Dispose()
Konvertierung unter macOS
Vorschau
- Öffnen Sie das BMP in Vorschau.
- Wählen Sie Datei > Exportieren.
- Wählen Sie das Format aus der Dropdown-Liste.
- Passen Sie bei JPEG gegebenenfalls die Qualität an.
Vorschau ist schnell und privat, aber wie Paint nur für einzelne Dateien.
Terminal mit sips
sips ist in macOS integriert und unterstützt BMP, JPEG, PNG und TIFF:
sips -s format jpeg input.bmp --out output.jpg
sips -s format png input.bmp --out output.png
WebP erfordert ImageMagick oder cwebp aus dem Homebrew-Paket webp:
brew install webp
# cwebp kann BMP nicht direkt lesen, daher zuerst in PNG konvertieren
sips -s format png input.bmp --out temp.png
cwebp temp.png -o output.webp
rm temp.png
Batch-Shell-Schleife
for f in *.bmp; do
sips -s format jpeg "$f" --out "${f%.bmp}.jpg"
done
Konvertierung unter Linux
ImageMagick
sudo apt install imagemagick
magick input.bmp output.jpg
magick input.bmp output.png
magick input.bmp output.webp
JPEG-Qualität anpassen:
magick input.bmp -quality 90 output.jpg
Batch-Konvertierung
for f in *.bmp; do
magick "$f" "${f%.bmp}.jpg"
done
Wenn Sie nur die kleinstmögliche WebP-Ausgabe benötigen, verwenden Sie direkt cwebp:
for f in *.bmp; do
cwebp -q 85 "$f" -o "${f%.bmp}.webp"
done
Konvertierung mit Code
Wenn Sie Konvertierungen innerhalb einer Anwendung, Pipeline oder eines Backend-Services brauchen, ist der Aufruf einer Bibliothek meist sauberer als ein Shell-Aufruf von ImageMagick.
TypeScript / Node.js
Verwenden Sie sharp. Es liest BMP und gibt JPG, PNG und WebP aus.
import sharp from "sharp"
async function convertBmp(
input: string,
output: string,
format: "jpg" | "png" | "webp"
) {
await sharp(input)
.toFormat(format, format === "jpg" ? { quality: 90 } : undefined)
.toFile(output)
}
await convertBmp("input.bmp", "output.jpg", "jpg")
await convertBmp("input.bmp", "output.png", "png")
await convertBmp("input.bmp", "output.webp", "webp")
Im Browser können Sie sharp nicht ausführen. Unser BMP to WebP-Konverter verwendet WebAssembly, um Dekodierung und Kodierung vollständig clientseitig durchzuführen.
PHP
PHP hat integrierte Bildfunktionen, wenn die GD-Erweiterung aktiviert ist.
<?php
function bmpToJpg(string $input, string $output, int $quality = 90): void {
$image = imagecreatefrombmp($input);
imagejpeg($image, $output, $quality);
imagedestroy($image);
}
function bmpToPng(string $input, string $output): void {
$image = imagecreatefrombmp($input);
imagepng($image, $output);
imagedestroy($image);
}
function bmpToWebp(string $input, string $output, int $quality = 90): void {
$image = imagecreatefrombmp($input);
imagewebp($image, $output, $quality);
imagedestroy($image);
}
bmpToJpg("input.bmp", "output.jpg");
bmpToPng("input.bmp", "output.png");
bmpToWebp("input.bmp", "output.webp");
Go
Go's Standardbibliothek liest kein BMP, aber golang.org/x/image/bmp schon. Für die Ausgabe verwenden Sie image/jpeg, image/png und golang.org/x/image/webp.
package main
import (
"image/jpeg"
"image/png"
"os"
"golang.org/x/image/bmp"
"golang.org/x/image/webp"
)
func bmpToJpg(input, output string, quality int) error {
f, err := os.Open(input)
if err != nil {
return err
}
defer f.Close()
img, err := bmp.Decode(f)
if err != nil {
return err
}
out, err := os.Create(output)
if err != nil {
return err
}
defer out.Close()
return jpeg.Encode(out, img, &jpeg.Options{Quality: quality})
}
PNG und WebP folgen demselben Muster mit png.Encode und webp.Encode.
Java
Javas ImageIO liest BMP out-of-the-box. Für WebP-Ausgabe brauchen Sie eine Bibliothek wie webp-imageio oder cwebp-Bindings.
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
public class BmpConverter {
public static void bmpToJpg(String input, String output, float quality) throws IOException {
BufferedImage image = ImageIO.read(new File(input));
File out = new File(output);
ImageIO.write(image, "jpg", out);
}
public static void bmpToPng(String input, String output) throws IOException {
BufferedImage image = ImageIO.read(new File(input));
File out = new File(output);
ImageIO.write(image, "png", out);
}
}
Für feinere JPEG-Qualitätskontrolle verwenden Sie die JPEGImageWriteParam-API.
Python
Mit Pillow ist Python der unkomplizierteste Weg, BMP in jedes gängige Format zu verwandeln.
from PIL import Image
with Image.open("input.bmp") as img:
img.convert("RGB").save("output.jpg", quality=90)
with Image.open("input.bmp") as img:
img.save("output.png")
with Image.open("input.bmp") as img:
img.save("output.webp", quality=90)
Für transparente PNG-Ausgabe erzwingen Sie stattdessen keine RGB-Konvertierung:
with Image.open("input.bmp") as img:
img.save("output.png")
Häufige Fallstricke
- Indizierte BMPs. BMPs mit 8 Bit oder weniger verwenden eine Palette. Manche Decoder geben ohne explizite Konvertierung Palettenindizes statt RGB-Werte zurück. In Pillow löst
img.convert("RGB")das Problem vor dem Speichern als JPEG oder WebP. - Bottom-up-Ausrichtung. Die meisten Bibliotheken handhaben das automatisch, aber wenn Sie einen manuellen BMP-Decoder schreiben, bedeutet ein positives Höhenfeld, dass Zeilen von unten nach oben gespeichert sind.
- JPEG-Standardqualität. Viele Tools verwenden 75–80 als Standard. Für Fotos, die im Vollbild betrachtet werden, ist 90 sicherer. Für Thumbnails reichen 70–80.
- WebP-Kompatibilität. WebP hat hervorragende Browserunterstützung, scheitert aber in manchen älteren Desktop-Bildbetrachtern. Wenn das Ziel eine native Windows-App ist, sind PNG oder JPG sicherer.
Was wofür verwenden
- Legacy-Archive: Bewahren Sie das Original-BMP auf. Speicherplatz ist billig; die verlorene Originalversion nicht.
- Web-Uploads: Konvertieren Sie zu WebP. Falls Fallback nötig, behalten Sie eine JPG-Kopie.
- Druck- oder Bearbeitungsworkflows: PNG bleibt verlustfrei und vermeidet Kompressionsartefakte.
- E-Mail und Messaging: JPG ist das sicherste universelle Format.
Wenn Sie einen schnellen Weg suchen, der weder Installation noch Kommandozeile erfordert, verwenden Sie unsere BMP to JPG-, BMP to PNG- und BMP to WebP-Konverter. Alles läuft im Browser, sodass die Datei von Anfang bis Ende auf Ihrem Rechner bleibt.



