„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie konvertiert man PNG in JPG mit PHP und behält dabei Qualität und Transparenz bei?

Wie konvertiert man PNG in JPG mit PHP und behält dabei Qualität und Transparenz bei?

Veröffentlicht am 22.11.2024
Durchsuche:795

How to Convert PNG to JPG with PHP While Maintaining Quality and Transparency?

So konvertieren Sie PNG in JPG mit PHP unter Beibehaltung der Qualität

Viele Websites bevorzugen JPG-Bilder aufgrund ihrer reduzierten Dateigröße, ohne die visuelle Qualität zu beeinträchtigen. Wenn Sie eine Sammlung von PNG-Dateien haben und diese mit PHP in JPG konvertieren müssen, finden Sie hier eine umfassende Anleitung:

PHP-Funktionen und Bibliotheken für die PNG-zu-JPG-Konvertierung

PHP bietet mehrere Funktionen und Bibliotheken, die die Bildbearbeitung effizient durchführen.

imagecreatefrompng(): Liest eine PNG-Datei und erstellt eine Bildressource.
imagejpeg(): Gibt ein JPG-Bild aus einer Bildressource aus.
imagecopy(): Kopiert einen Teil eines Bildes auf ein anderes.
imagedestroy(): Gibt Speicher frei, der einer Bildressource zugeordnet ist.

Konvertierungscode Snippet

Um PNG sicher in JPG mit Transparenz in Weiß zu konvertieren, befolgen Sie diese Schritte:

  1. Laden Sie das PNG-Bild mit imagecreatefrompng().
  2. Erstellen ein mit Weiß gefülltes Echtfarben-Hintergrundbild mit imagecreatetruecolor() und imagefill().
  3. Aktivieren Sie Alpha Blending, um die Transparenz beizubehalten imagealphablending().
  4. Kopieren Sie das PNG-Bild mit imagecopy() auf das Hintergrundbild.
  5. Zerstören Sie die ursprüngliche PNG-Bildressource mit imagedestroy().
  6. Legen Sie das gewünschte Bild fest Qualität (0-100) für die JPG-Datei.
  7. Gib das JPG-Bild mit imagejpeg() aus.
  8. Zerstöre den Hintergrund Bildressource mit imagedestroy().
$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);
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3