Home
Navigation
Impressum
SEO Welten - Webcoding, Editoren, Scripte und Anwendungen
SEO Welten
Buchempfehlungen
 

Text in Bilder mit PHP und imagettftext einfügen

Ein- oder mehrzeiligen Text in Fotos und sonstigen Grafiken einfügen

Übersicht / Seite:

  1. Hotlinking von Bildern (mit Beispielen für Gegenmaßnahmen)
  2. Text in Bilder einfügen (mit PHP, ImageTTFText und geeigneten Fonts)
  3. Rewrite Regeln (und Bedingungen für die Auslieferung von Images)
  4. Clientseitige Möglichkeiten (zum Austausch von Grafiken)
  5. Ein weiteres PHP-Script (zur Einfügung von sichtbaren Wasserzeichen)

Vorbemerkungen zum gestalterischen Spielraum

Das auf der vorausgehenden Seite vorgestellte Script lässt noch Wünsche offen, vor allem in Bezug auf den gestalterischen Spielraum. So kann nur auf den Schrifttypensatz und auf die Schriftgrößen zugegriffen werden, die PHP zur Verfügung stellt. Bei kleineren Bildern mag dieser Umstand noch vernachlässigbar sein, bei größeren Fotos oder sonstigen Grafiken hingegen kaum noch. PHP bietet jedoch Funktionen an, um eigene Fonts zu verwenden, mit denen sich der gestalterische Spielraum steigern lässt. Zu diesen Funktionen gehören imageloadfont und imagettftext. Nachfolgend möchten wir Ihnen ein Beispiel mit der PHP Funktion imagettftext vorstellen.

Ein Beispiel mit imagettftext

Das Code-Listing auf dieser Seite unterscheidet sich nicht wesentlich im Funktionsumfang von dem auf der vorausgehenden Seite vorgestellten Script, mit dem Unterschied, dass die PHP-Funktion imagettftext und ein geeigneter Schrifttypensatz zur Anwendung kommt, wodurch die Schriftgröße beliebig anpassbar wird. Als Schrifttypensatz (Font) wurde für dieses Beispiel Source Sans Pro von Adobe gewählt, da dieser Font von Adobe im Rahmen eines Open-Source-Projekts kostenlos zur Verfügung gestellt wird. Entwickelt wurde dieser Font vom Designer Paul D. Hunt. Weitere Einzelheiten unter Source Sans Pro und Download bei sourceforge.net.
Selbstverständlich ließe sich jeder beliebige TrueType-Font benutzen, nur sollten die jeweiligen Lizenzbestimmungen beachtet werden, da frei verfügbar oder Open Source nicht in jedem Fall kostenlos bedeutet. Weiterhin wurde für die Schriftgröße ein Dreißigstel der Bildweite verwendet und alle weiteren Einteilungen für die gewählten Abstände wurden von der Schriftgröße (Font-size) abgeleitet. Sowohl die Schriftgröße als auch die gewählten Abstände müssten bei Verwendung eines anderen Fonts gegebenenfalls neu justiert werden.

Weiterhin sei angemerkt, dass bei Verwendung der Funktion imagettftext ein Zugriff auf die GD-Bibliothek und auf die FreeType-Bibliothek ermöglicht sein muss. Beides erfahren Sie aus Ihrer PHPinfo-Datei unter dem Stichpunkt GD.

Zweites Beispiel für ein PHP-Script (images.php):

<?php

header("Cache-Control: no-cache, must-revalidate");   // neue Anfrage an den Server auslösen 
header("Expires: Thu, 01 Jan 1970 00:00:00 GMT");     // Datum in die Vergangenheit verlegen
header("Pragma: no-cache");                           // zusätzlicher Hinweis für Proxy-Server

if (isset($_GET["image"]) and !empty($_GET["image"])) {

    $eingang = $_GET["image"];
    $endung  = $_GET["endung"];
    $eingang = preg_replace("/[^a-z0-9_\/-]/i", "", $eingang);
    $endung  = preg_replace("/[^a-z]/i", "", $endung);
    $endung  = strtolower($endung);

    if ($endung == "jpg") {
        header("Content-Type: image/jpeg");
        $image  = imagecreatefromjpeg($eingang.".".$endung);
    }
    if ($endung == "png") {
        header("Content-type: image/png");
        $image  = imagecreatefrompng($eingang.".".$endung);
    }

    $format = getimagesize($eingang.".".$endung);
    $width  = $format[0];
    $height = $format[1];
    $fontsz = round($width /30);                  // font-size beträgt ein Dreißigstel der Bildweite
    $abobn1 = round($fontsz *2.5);                // Unterkante der ersten Zeile font-size x 2,5
    $abobn2 = $abobn1 + round($fontsz *1.6);      // Unterkante der zweiten Zeile font-size x 2,5 + font-size x 1,6
    $aboben = $height - ($fontsz *4);             // Unterer abgedunkelter Streifen = Bildhöhe - font-size x 4
    $abobn3 = $height - round($fontsz *1.7);      // Ausrichtung Quellenverweis = Bildhöhe - font-size x 1,7 
    $ablin  = round($fontsz *1.3);                // Ausrichtung vom linken Bildrand font-size x 1.3
    $fontpf = "fonts/SourceSansPro-Regular.ttf";  // Pfad zum Font
    $infos1 = "Weitere Infos zum Bild erwünscht?";
    $infos2 = "Dann folgen Sie dem Link.";
    $quelle = "Quelle: www.example.com";

    $transall = imagecolorallocatealpha($image, 30, 30, 30, 40);  // R,G,B, Transparenz max. 127
    imagefilledrectangle($image, 0, 0, $width, $height, $transall);
    imagefilledrectangle($image, 0, $aboben, $width, $height, $transall);

    $tfarbe = imagecolorallocate($image, 255, 150, 0);            // Color RGB für Schrift
    $qfarbe = imagecolorallocate($image, 255, 240, 190);          // RGB fuer Quelle

    if ($width > 150 and $height > 150) {

        /* ------------------------------------------------------------------------------
        Image, font-size, Drehung 0, Abstand der Schrift von links, Abstand der Schrift
        von oben bis zur Unterkannte, Color, Font mit Pfad, String
        ------------------------------------------------------------------------------ */
        ImageTTFText ($image, $fontsz, 0, $ablin, $abobn1, $tfarbe, $fontpf, $infos1);
        ImageTTFText ($image, $fontsz, 0, $ablin, $abobn2, $tfarbe, $fontpf, $infos2);
        ImageTTFText ($image, $fontsz, 0, $ablin, $abobn3, $qfarbe, $fontpf, $quelle);
    }

    if ($endung == "jpg") imagejpeg($image);
    if ($endung == "png") imagepng($image);

    imagedestroy($image);
}
?>

Das Script würde unabhängig von der Größe der aufgerufenen Grafik den Text an das zu bearbeitende Bild anpassen. Siehe hierzu nachfolgendes Foto.

Altmärkische Landschaft mit Quellenverweis
Altmärkische Landschaft / Quellenverweis mit anpassbarer Schriftgröße

Was nun noch fehlt, das sind noch einige Beispiele für den praktischen Einsatz des Scripts. Zu diesem Thema auf der nächsten Seite mehr.

Hotlinking von Bildern « zurück / weiterlesen » Rewrite Regeln

 
Navigation

Finden und
gefunden werden ...


- Optimierung -

 

Webcoding

Übersicht


Web Services


Tutorials &
diverse Listings

und vieles mehr...


XML


Copyright © 2006 - Verlag Horst Müller - Stendal | Datenschutz | Nutzungsbedingungen