Bei der täglichen Entwicklung ist die Bildverarbeitung eine sehr häufige Anforderung, wie z. B. Miniaturansichten, Wasserzeichen -Addition, Formatkonvertierung usw. In PHP bietet die GD -Bibliothek eine umfassende Unterstützung für die Bildverarbeitung, wobei die ImagecreateFromgd2 () -Funktion verwendet wird, um Bildressourcen aus .GD2 -Formatdateien zu erstellen. Obwohl das .GD2- Format nicht üblich ist, können wir mit Hilfe dieser Funktion und anderen Funktionen der GD-Bibliothek einen allgemeinen Bildprozessor erstellen, der mehrere Bildformate unterstützt (wie JPG, PNG, GIF, GD2).
ImagecreateFromgd2 () ist eine Funktion in der GD -Bibliothek von PHP. Seine Funktion besteht darin, eine Bildressource aus einer GD2 -Bildformatdatei zu erstellen:
resource imagecreatefromgd2(string $filename)
GD2 ist ein Bildformat, das von der GD -Bibliothek selbst unterstützt wird und hauptsächlich zum effizienten Speichern von Bildern verwendet wird. Obwohl es nicht beliebt ist, kann seine Unterstützung immer noch für bestimmte Systeme oder Anforderungen verwendet werden.
Wir können eine Fabrikfunktion erstellen und die entsprechende Erstellungsfunktion automatisch gemäß der Erweiterung der Bilddatei aufrufen, einschließlich ImagecreateFromjpeg , Imagecreatfrommpng , ImagecreateFromgif , ImageCreateFromgd2 usw.
function loadImage($filepath) {
if (!file_exists($filepath)) {
throw new Exception("Die Datei existiert nicht:$filepath");
}
$extension = strtolower(pathinfo($filepath, PATHINFO_EXTENSION));
switch ($extension) {
case 'jpg':
case 'jpeg':
return imagecreatefromjpeg($filepath);
case 'png':
return imagecreatefrompng($filepath);
case 'gif':
return imagecreatefromgif($filepath);
case 'gd2':
return imagecreatefromgd2($filepath);
default:
throw new Exception("Nicht unterstützte Bildformate:$extension");
}
}
Angenommen, wir lesen das Bild aus jedem Format (einschließlich GD2) und skalieren es auf 200x200 und speichern Sie es als PNG -Format:
function resizeImage($sourcePath, $targetPath, $width = 200, $height = 200) {
$sourceImage = loadImage($sourcePath);
$resizedImage = imagecreatetruecolor($width, $height);
// Halten alpha Gang(für PNG)
imagealphablending($resizedImage, false);
imagesavealpha($resizedImage, true);
$srcWidth = imagesx($sourceImage);
$srcHeight = imagesy($sourceImage);
imagecopyresampled($resizedImage, $sourceImage, 0, 0, 0, 0, $width, $height, $srcWidth, $srcHeight);
imagepng($resizedImage, $targetPath);
imagedestroy($sourceImage);
imagedestroy($resizedImage);
}
try {
$inputFile = '/var/www/html/uploads/sample.gd2';
$outputFile = '/var/www/html/processed/sample_resized.png';
resizeImage($inputFile, $outputFile);
echo "Das Bild wurde erfolgreich verarbeitet und gespeichert:$outputFile";
} catch (Exception $e) {
echo "Die Bildverarbeitung ist fehlgeschlagen:" . $e->getMessage();
}
Stellen Sie sicher, dass der Server für GD -Erweiterungen installiert und aktiviert ist.
Überprüfen Sie das vom Benutzer eingereichte Bildformat vor dem Hochladen, um zu verhindern, dass böswillige Dateien verkleidet werden.
Wenn Online -Image -Verarbeitungsdienste bereitgestellt werden, wird empfohlen, geeignete Dateigrößen und Ressourcengrenzen festzulegen.
Obwohl ImagecreateFromgd2 () das Nischen -GD2 -Format verarbeitet, können wir einen Bildprozessor erstellen, der mehrere Formate unterstützt. Es kann nicht nur die Mainstream -Bildformate verarbeiten, sondern bietet auch Flexibilität für die Systemerweiterung. Vergessen Sie beim Verarbeiten von Bildern nicht die Sicherheitsüberprüfung externer Dateiquellen, um die Sicherheit der Systeme zu gewährleisten.
Sie können verarbeitete Bilder auch auf Ihre Website hochladen, zum Beispiel: