Verwenden Sie PHP, um PNG mit Komprimierung in JPG zu konvertieren?

Lesezeit: 3 Minuten

Ich habe ein paar hochwertige PNG-Dateien. Ich möchte PHP verwenden, um sie in JPG zu konvertieren, da die Dateigröße kleiner ist und gleichzeitig die Qualität erhalten bleibt. Ich möchte die JPG-Dateien im Web anzeigen.

Hat PHP dafür Funktionen/Bibliotheken? Ist die Qualität/Komprimierung gut?

  • Beachten Sie, dass JPG je nach Art der Bilder nicht immer eine kleinere Dateigröße als PNG hat, also stellen Sie sicher, dass Sie das richtige für Ihre Situation verwenden. lbrandy.com/blog/2008/10/my-first-and-last-webcomic

    – jimyi

    29. Juli 2009 um 17:27 Uhr

Verwenden Sie PHP um PNG mit Komprimierung in JPG zu
Daniel De Leon

Tun Sie dies, um ein PNG sicher in JPG mit der Transparenz in Weiß zu konvertieren.

$image = imagecreatefrompng($filePath);
$bg = imagecreatetruecolor(imagesx($image), imagesy($image));
imagefill($bg, 0, 0, imagecolorallocate($bg, 255, 255, 255));
imagealphablending($bg, TRUE);
imagecopy($bg, $image, 0, 0, 0, 0, imagesx($image), imagesy($image));
imagedestroy($image);
$quality = 50; // 0 = worst / smaller file, 100 = better / bigger file 
imagejpeg($bg, $filePath . ".jpg", $quality);
imagedestroy($bg);

  • Das ist viel besser, befasst sich mit Transparenz. Zwei Top-Antworten sind jetzt Level Pegging!

    – Matt Fletcher

    4. Juli 2014 um 8:46 Uhr

  • Du hast meinen Tag gerade um einiges besser gemacht, Kumpel! Danke!

    – WingmanImd

    19. Dezember 2015 um 15:58 Uhr

  • Funktioniert dieser Code für andere Arten von Quelldateien, wie bmp?

    – Gonzalo

    5. März 2018 um 23:17 Uhr

  • Ich weiß, dass dies eine alte Frage ist, aber was macht dies zur korrekten Methode, um PNG in JPG zu konvertieren? Würde diese einfachere Antwort nicht ausreichen?

    – Alex Lowe

    19. Januar 2021 um 0:55 Uhr


Verwenden Sie PHP um PNG mit Komprimierung in JPG zu
Andreas Moore

Achten Sie darauf, was Sie konvertieren möchten. JPG unterstützt keine Alpha-Transparenz, während PNG dies tut. Sie werden diese Informationen verlieren.

Zum Umwandeln können Sie die folgende Funktion verwenden:

// Quality is a number between 0 (best compression) and 100 (best quality)
function png2jpg($originalFile, $outputFile, $quality) {
    $image = imagecreatefrompng($originalFile);
    imagejpeg($image, $outputFile, $quality);
    imagedestroy($image);
}

Diese Funktion verwendet die imagecreatefrompng() und das imagejpeg() Funktionen aus der GD-Bibliothek.

  • Bitte sehen Sie sich die Antwort von danLeon an, um PNG sicher in JPG zu konvertieren.

    – Codemole

    28. August 2012 um 2:31 Uhr

Dies ist ein kleines Beispiel, das ‘image.png’ in ‘image.jpg’ bei 70 % Bildqualität konvertiert:

<?php
$image = imagecreatefrompng('image.png');
imagejpeg($image, 'image.jpg', 70);
imagedestroy($image);
?>

Ich hoffe, das hilft

Verwenden Sie PHP um PNG mit Komprimierung in JPG zu
Patrick

<?php
function createThumbnail($imageDirectory, $imageName, $thumbDirectory, $thumbWidth) {
    $explode = explode(".", $imageName);
    $filetype = $explode[1];

    if ($filetype == 'jpg') {
        $srcImg = imagecreatefromjpeg("$imageDirectory/$imageName");
    } else
    if ($filetype == 'jpeg') {
        $srcImg = imagecreatefromjpeg("$imageDirectory/$imageName");
    } else
    if ($filetype == 'png') {
        $srcImg = imagecreatefrompng("$imageDirectory/$imageName");
    } else
    if ($filetype == 'gif') {
        $srcImg = imagecreatefromgif("$imageDirectory/$imageName");
    }

    $origWidth = imagesx($srcImg);
    $origHeight = imagesy($srcImg);

    $ratio = $origWidth / $thumbWidth;
    $thumbHeight = $origHeight / $ratio;

    $thumbImg = imagecreatetruecolor($thumbWidth, $thumbHeight);
    imagecopyresized($thumbImg, $srcImg, 0, 0, 0, 0, $thumbWidth, $thumbHeight, $origWidth, $origHeight);

    if ($filetype == 'jpg') {
        imagejpeg($thumbImg, "$thumbDirectory/$imageName");
    } else
    if ($filetype == 'jpeg') {
        imagejpeg($thumbImg, "$thumbDirectory/$imageName");
    } else
    if ($filetype == 'png') {
        imagepng($thumbImg, "$thumbDirectory/$imageName");
    } else
    if ($filetype == 'gif') {
        imagegif($thumbImg, "$thumbDirectory/$imageName");
    }
}
    ?>

Dies ist ein sehr gutes Thumbnail-Skript =) Hier ist ein Beispiel:

$path = Der Pfad zu dem Ordner, in dem sich das Originalbild befindet. $name = Der Dateiname der Datei, von der Sie ein Miniaturbild erstellen möchten. $thumbpath = Der Pfad zu dem Verzeichnis, in dem das Thumbnail gespeichert werden soll. $maxwidth = die maximale Breite des Thumbnails in PX zB. 100 (was 100px sein wird).

createThumbnail($path, $name, $thumbpath, $maxwidth);

Vielleicht möchten Sie nachsehen Bildmagie, die normalerweise als De-facto-Standardbibliothek für die Bildverarbeitung angesehen wird. Erfordert jedoch die Installation eines zusätzlichen PHP-Moduls, nicht sicher, ob welche in einer Standardinstallation verfügbar sind.

HTH.

PHP hat einige Bildverarbeitungsfunktionen zusammen mit imagecreatefrompng und imagejpeg Funktion. Der erste erstellt eine interne Darstellung einer PNG-Bilddatei, während der zweite verwendet wird, um diese Darstellung als JPEG-Bilddatei zu speichern.

1646171048 389 Verwenden Sie PHP um PNG mit Komprimierung in JPG zu
Draemon

Sehen diese Liste von PHP-Bildbibliotheken. Im Grunde ist es GD oder Imagemagick.

905170cookie-checkVerwenden Sie PHP, um PNG mit Komprimierung in JPG zu konvertieren?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy