Support & Oft gestellte Fragen

Verfügbare Programme zur Bildoptimierung

In diesem Artikel finden Sie Informationen zur Bildoptimierung auf dem Webserver sowie praktische PHP-Beispiele zur automatisierten Verarbeitung und Optimierung von Bildern. Die Optimierung von Bildern reduziert die Dateigröße erheblich und verbessert die Ladezeiten Ihrer Webseite. Auf den loswebos-Webservern stehen hierfür verschiedene Werkzeuge wie jpegtran, optipng, gifsicle, jpegoptim, ImageMagick, GraphicsMagick, advancecomp, pngquant und pngcrush zur Verfügung.

Verfügbare Programme zur Bildoptimierung

Folgende Programme sind serverseitig verfügbar:

Programm

Verwendungszweck

jpegtran

Verlustfreie JPEG-Optimierung

jpegoptim

JPEG-Komprimierung und Metadatenbereinigung

optipng

Optimierung von PNG-Dateien

pngquant

Verlustbehaftete PNG-Komprimierung

pngcrush

PNG-Komprimierung und Bereinigung

gifsicle

Optimierung und Bearbeitung von GIF-Dateien

ImageMagick

Bildbearbeitung und Konvertierung

GraphicsMagick

Schnelle Bildverarbeitung

advancecomp

Zusätzliche Komprimierung von PNG-Dateien


PHP-Beispiele

JPEG-Dateien mit jpegoptim optimieren

<?php
$image = '/home/user/public_html/uploads/bild.jpg';

if (file_exists($image)) {
    exec('jpegoptim --strip-all ' . escapeshellarg($image), $output, $return);

    if ($return === 0) {
        echo "JPEG erfolgreich optimiert.";
    } else {
        echo "Fehler bei der Optimierung.";
    }
}
?>

Parameter:

  • --strip-all entfernt EXIF-, IPTC- und Kommentar-Metadaten.

  • Reduziert die Dateigröße häufig um 10–30 %.


PNG-Dateien mit pngquant komprimieren

<?php
$image = '/home/user/public_html/uploads/logo.png';

exec(
    'pngquant --force --ext .png --quality=65-85 ' .
    escapeshellarg($image),
    $output,
    $return
);

if ($return === 0) {
    echo "PNG erfolgreich komprimiert.";
}
?>

PNG-Dateien mit optipng verlustfrei optimieren

<?php
$image = '/home/user/public_html/uploads/banner.png';

exec(
    'optipng -o7 ' . escapeshellarg($image),
    $output,
    $return
);

echo $return === 0
    ? "PNG erfolgreich optimiert."
    : "Optimierung fehlgeschlagen.";
?>

Bilder mit ImageMagick automatisch verkleinern

<?php
$source = '/home/user/public_html/uploads/foto.jpg';
$target = '/home/user/public_html/uploads/foto-klein.jpg';

exec(
    'convert ' .
    escapeshellarg($source) .
    ' -resize 1200x1200\> -quality 85 ' .
    escapeshellarg($target),
    $output,
    $return
);

if ($return === 0) {
    echo "Bild erfolgreich verkleinert.";
}
?>

Das Zeichen > bewirkt, dass Bilder nur verkleinert und niemals vergrößert werden.


Automatische Optimierung beim Datei-Upload

<?php

if ($_SERVER['REQUEST_METHOD'] === 'POST' &&
    isset($_FILES['bild'])) {

    $uploadDir = __DIR__ . '/uploads/';
    $file = $uploadDir . basename($_FILES['bild']['name']);

    if (move_uploaded_file($_FILES['bild']['tmp_name'], $file)) {

        $mime = mime_content_type($file);

        switch ($mime) {
            case 'image/jpeg':
                exec(
                    'jpegoptim --strip-all ' .
                    escapeshellarg($file)
                );
                break;

            case 'image/png':
                exec(
                    'pngquant --force --ext .png ' .
                    escapeshellarg($file)
                );
                break;
        }

        echo "Datei hochgeladen und optimiert.";
    }
}
?>

Bildgröße vor und nach der Optimierung vergleichen

<?php
$file = 'uploads/bild.jpg';

$before = filesize($file);

exec('jpegoptim --strip-all ' . escapeshellarg($file));

clearstatcache();

$after = filesize($file);

echo "Vorher: " . round($before / 1024, 2) . " KB<br>";
echo "Nachher: " . round($after / 1024, 2) . " KB<br>";
echo "Ersparnis: " .
     round((1 - $after / $before) * 100, 2) .
     "%";
?>

Empfehlung für produktive Webseiten

Für eine optimale Performance empfiehlt sich folgende Reihenfolge:

  1. Bild beim Upload verkleinern (ImageMagick)

  2. JPEGs mit jpegoptim optimieren

  3. PNGs mit pngquant und anschließend optipng verarbeiten

  4. EXIF-Daten entfernen

  5. WebP oder AVIF zusätzlich bereitstellen

Durch die serverseitig verfügbaren Werkzeuge können die Ladezeiten einer Webseite erheblich verbessert und der Bandbreitenverbrauch reduziert werden.