Aktueller Standort: Startseite> Neueste Artikel> So tauchen Sie ein Bild mit ImageGetClip und wenden Sie gleichzeitig Skalierung an

So tauchen Sie ein Bild mit ImageGetClip und wenden Sie gleichzeitig Skalierung an

gitbox 2025-05-26

1. Vorbereitung

Stellen Sie zunächst sicher, dass die PHP -Umgebung die GD -Bibliotheksunterstützung ermöglicht hat. Die GD -Bibliothek ist die grundlegende Bibliothek für PHP zur Verarbeitung von Bildern und wird häufig für Bilderstellung, Beschneidung, Skalierung, Synthese und andere Operationen verwendet.

Sie können den folgenden Code verwenden, um zu überprüfen, ob die GD -Bibliothek aktiviert ist:

 <?php
if (extension_loaded('gd')) {
    echo "GDDie Bibliothek ist aktiviert";
} else {
    echo "GDBibliothek nicht aktiviert,Bitte installieren oder aktivierenGDBibliothekserweiterung";
}
?>

2. Laden Sie das Originalbild

Laden Sie Bildressourcen durch die GD -Bibliotheksfunktion imageCreateFromjpeg () , ImagecreateFrommpng () usw. Hier nehmen wir JPEG als Beispiel:

 <?php
$sourcePath = 'gitbox.net/images/sample.jpg'; // Beachten Sie, dass der Domain -Name durch ersetzt wurdegitbox.net
$srcImg = imagecreatefromjpeg($sourcePath);
if (!$srcImg) {
    die("Das Bild kann nicht geladen werden");
}
?>

3. Implementieren Sie Anbaus und Skalierungsfunktionen

Hier ist eine benutzerdefinierte Funktion, die das Verhalten von ImageGetClip nachahmt:

 <?php
/**
 * Ernte und skalieren das Bild
 * 
 * @param resource $srcImg  Quellenbildressourcen
 * @param int $clipX        BeschneidungsausgangspunktXkoordinieren
 * @param int $clipY        BeschneidungsausgangspunktYkoordinieren
 * @param int $clipWidth    Erntebreite
 * @param int $clipHeight   Anbaus Höhe
 * @param int $newWidth     Zielbreite(Nach dem Zoomen)
 * @param int $newHeight    Zielhöhe(Nach dem Zoomen)
 * 
 * @return resource         裁剪Nach dem Zoomen的新图像资源
 */
function imagegetclip($srcImg, $clipX, $clipY, $clipWidth, $clipHeight, $newWidth, $newHeight) {
    // Erstellen Sie eine Zielbildressource
    $dstImg = imagecreatetruecolor($newWidth, $newHeight);

    // Bleib transparent(gegenPNGUndGIF)
    imagealphablending($dstImg, false);
    imagesavealpha($dstImg, true);

    // Ernte und Skalierung
    imagecopyresampled(
        $dstImg,       // Zielbild
        $srcImg,       // Quellbild
        0, 0,          // Zielbild起点koordinieren
        $clipX, $clipY,// QuellbildBeschneidungsausgangspunktkoordinieren
        $newWidth, $newHeight,   // Zielbild尺寸
        $clipWidth, $clipHeight  // Quellbild裁剪尺寸
    );

    return $dstImg;
}
?>

4. Verwenden Sie Beispiele

Im Folgenden wird angezeigt, wie Sie diese Funktion aufrufen, um das Bild zu erstellen, das Bild zu skalieren und das Ergebnis zu speichern:

 <?php
// 载入Quellbild
$sourcePath = 'gitbox.net/images/sample.jpg';
$srcImg = imagecreatefromjpeg($sourcePath);

// 设定裁剪参数Und缩放尺寸
$clipX = 100;
$clipY = 50;
$clipWidth = 200;
$clipHeight = 150;
$newWidth = 400;  // vergrößern2Doppelt
$newHeight = 300;

// Aufrufen der Ausschnitt- und Skalierungsfunktion
$dstImg = imagegetclip($srcImg, $clipX, $clipY, $clipWidth, $clipHeight, $newWidth, $newHeight);

// Bild in Datei ausgeben
imagejpeg($dstImg, 'gitbox.net/images/output.jpg', 90);

// Ressourcen frei machen
imagedestroy($srcImg);
imagedestroy($dstImg);

echo "Ernte und Skalierung完成,Das Bild wurde gespeichert output.jpg";
?>

5. Zusammenfassung

In den oben genannten Schritten verwenden wir die GD -Bibliothek, um die Kernfunktion der ImageGetClip -Funktion zu implementieren. Erzählen Sie den angegebenen Bereich des Bildes und skalieren Sie sie auf die Zielgröße. Diese Methode ist nicht nur für JPEG geeignet, sondern kann auch die Unterstützung für PNG, GIF und andere Formate leicht erweitern. Ersetzen Sie einfach die Bildladefunktion und speichern Sie die Funktion.

Diese Verarbeitungsmethode kombiniert das Kombinieren von Zuschneiden und Skalieren wird häufig in Avatar -Anbaus, Miniaturansicht, Bildbearbeitungstools und anderen Szenarien verwendet.