SEO Welten
Buchempfehlungen
|
Text in Bilder mit PHP und imagettftext einfügenEin- oder mehrzeiligen Text in Fotos und sonstigen Grafiken einfügenÜbersicht / Seite:
Vorbemerkungen zum gestalterischen SpielraumDas 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 imagettftextDas 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. <?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.
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 - Optimierung -
Webcoding
Übersicht Web Services Tutorials &
und vieles mehr... XML |