Aktueller Standort: Startseite> Neueste Artikel> Bildgenerierungsverifizierungscode: GD2 -Bild dynamisch Text hinzufügen

Bildgenerierungsverifizierungscode: GD2 -Bild dynamisch Text hinzufügen

M66 2025-05-29

In der Webentwicklung werden häufig Verifizierungscodebilder verwendet, um die automatische Einreichung von Formularen zu verhindern. PHP stellt reichhaltige Bildverarbeitungsfunktionen zur Verfügung, um Überprüfungscodebilder zu generieren. Unter ihnen ist ImagecreateFromgd2 () eine Funktion, mit der Bildressourcen aus einer GD2 -Datei erstellt werden. Sie wird jedoch normalerweise zum Lesen vorhandener Bildressourcen verwendet, anstatt Bilder direkt zu generieren. Wir können jedoch die ImageGd2 () -Funktion kombinieren, um das dynamisch erzeugte Bild im GD2 -Format zu speichern und es dann durch ImagecreateFromgd2 () zu lesen und zu verarbeiten.

In diesem Artikel wird demonstriert, wie ein Verifizierungscode -Bild mit zufälligem Text dynamisch generiert wird, und verwendet ImagecreateFromgd2 (), um das Bild zu verarbeiten.

Schritteübersicht

  1. Erstellen Sie eine Bildressource

  2. Hintergrundfarbe und zufälliger Verifizierungscode Text hinzufügen

  3. Speichern Sie als .gd2 -Format

  4. Lesen Sie die .gd2 -Datei und geben Sie sie als endgültiges Bild aus

Beispielcode

 <?php
// Step 1: Erstellen Sie dynamisch Verifizierungscode -Bilder
$width = 150;
$height = 50;
$image = imagecreatetruecolor($width, $height);

// Hintergrundfarben setzen
$bgColor = imagecolorallocate($image, 255, 255, 255); // Weiß
imagefill($image, 0, 0, $bgColor);

// Textfarbe festlegen
$textColor = imagecolorallocate($image, 0, 0, 0); // Schwarz

// Generieren Sie den Inhalt des Zufallsverifizierungscode -Codes
$captcha = '';
$chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
for ($i = 0; $i < 6; $i++) {
    $captcha .= $chars[rand(0, strlen($chars) - 1)];
}

// Text zum Bild hinzufügen
$fontSize = 5; // 1 ankommen 5 Schriftgröße
$x = 10;
$y = ($height - imagefontheight($fontSize)) / 2;
imagestring($image, $fontSize, $x, $y, $captcha, $textColor);

// Step 2: Speichern Sie das Bild als .gd2 dokumentieren
$gd2Path = 'captcha.gd2';
imagegd2($image, $gd2Path);

// Zerstören Sie die Originalbildressourcen
imagedestroy($image);

// Step 3: verwenden imagecreatefromgd2 Lesen Sie das Bild
$gd2Image = imagecreatefromgd2($gd2Path);

// aufstellen HTTP Header -Ausgangsbild
header('Content-Type: image/png');
imagepng($gd2Image);

// Aufräumen
imagedestroy($gd2Image);
?>

Anweisungen zur Verwendung

  • Bitte stellen Sie sicher, dass die GD -Bibliothek während der PHP -Installation aktiviert ist (normalerweise standardmäßig aktiviert).

  • Die Datei speichern Pfad captcha.gd2 sollte Schreibberechtigungen haben.

  • Sie können den Inhalt des Verifizierungscode -Inhalts in $ _Session für die nachfolgende Überprüfung speichern.

Beispielanwendungsszenarien

Sie können dieses dynamisch generierte Verifizierungscode -Bild in das Formular einbetten:

 <form method="post" action="https://m66.net/verify.php">
    <img src="https://m66.net/captcha.php" alt="Bestätigungscode">
    <input type="text" name="captcha" placeholder="请输入Bestätigungscode">
    <input type="submit" value="einreichen">
</form>

Zusammenfassung

Obwohl ImagecreateFromgd2 () nicht direkt zum Erstellen von Bildern verwendet wird, indem zunächst ImageGd2 () eine GD2 -Datei generiert und dann das Lesen und Ausgang verwendet wird, kann der Zweck der dynamischen Generierung von Verifizierungscode -Bildern erreicht werden. Dieser Ansatz eignet sich für Szenen, in denen Zwischenbild -Caches oder Bildvorlagen erforderlich sind.

Wenn Sie komplexere Überprüfungscode -Bilder (Verzerrungen, Interferenzlinien, Schriftänderungen usw.) benötigen, können Sie die Funktion von ImagettFtext () verwenden, um TTF -Schriftarten zu kombinieren, um fortschrittlichere Funktionen zu erzielen.

Müssen Sie eine Verifizierungscode -Version mit TTF -Schriftart demonstrieren?