Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] imagestring() bzw. imagettftext() und externe Fornts (https://www.delphipraxis.net/70575-%5Bphp%5D-imagestring-bzw-imagettftext-und-externe-fornts.html)

jensw_2000 1. Jun 2006 08:25


[PHP] imagestring() bzw. imagettftext() und externe Fornts
 
Hi,

könnt ihr mal jemand einen Blick auf meine mail2image Funktion werfen ?
Sie funktioniert problemlos (lokal und beim ISP), wenn ich imagestring() mit den eingebetteten Standard-Fonts verwende. Das generierte PNG gefällt mir aber nicht, weil bei den 5 engebetteten Fonts aber keine serifenlose Schrift mit einer Höhe von 10 Pixeln dabei ist, und die Schrift des Images nicht zu meinem Design passt.

Jetzt habe ich folgende Möglichkeiten gefunden, um eigene Schriften zu verwenden:
1. TTF
Code:
   $font = '../styles/fonts/verdana.ttf';
   imagettftext($img, 10, 0, 2, 11, $color['fg'], $font, $mail);
und
2. GDF
Code:
   $font = '../styles/fonts/8x13iso.gdf';
   imagestring($img,imageloadfont($font),0,0,$mail,$color['fg']);
Beide Varianten funktionieren auf meinem lokalen Appache problemlos.
Wenn ich den Code jedoch auf dem Webserver meines ISP's verwende, wird die Schrift scheinbar nicht gerendert.
Die Funktion erzeugt nur transparente PNG's :gruebel: .

Ich bin, was PHP betrifft, noch ziemlich grün hinter den Ohren. Falls ihr eine Idee habt, oder eventuell eine bessere Möglichkeit kennt, dann immer her damit :zwinker: .

Code:
function mail2image($user)
{
    $userDomain = "@meinedomain.de";

    // Email zusammensetzen
    $mail = $user.$userDomain;

    // Breite kalkulieren
    $width = 8 * strlen($mail);
   
    //Bild erzeugen
    $img = imagecreate($width, 15); // pro Buchstabe 8px breit und 13px hoch
   
    //Hintergrundfarbe definieren
    $color['hg'] = imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
   
    //Vordergrundfarbe definieren
    $color['fg'] = imagecolorallocate($img, 0x00, 0x00, 0x66);
   
    //Text auf $img schreiben
   
    // Test mit den embedded GD-Fonts > funktioniert lokal UND beim ISP
    imagestring($img,4,0,0,$mail,$color['fg']);
   
    // Problem!
    //
    // Test TTF > funktioniert auf meinem lokalen System, aber nicht beim ISP :o(
    // $font = '../styles/fonts/verdana.ttf';
    // imagettftext($img, 10, 0, 2, 11, $color['fg'], $font, $mail);
    // 
    // Test GDF > funktioniert auf meinem lokalen System, aber nicht beim ISP :o(
    // $font = '../styles/fonts/8x13iso.gdf';
    // imagestring($img,imageloadfont($font),0,0,$mail,$color['fg']);
    //
    // Ende Problem!

    //Hintergrundfarbe entfernen (transparent)
    imagecolortransparent($img, $color['hg']);
   
    //PNG erzeugen
    header("Content-type: image/png");
    imagepng($img);
    imagedestroy($img);
}


Schöne Grüße,
Jens
:hi:

jfheins 1. Jun 2006 08:38

Re: [PHP] imagestring() bzw. imagettftext() und externe Forn
 
Kommt irgendeine Warnung/Notice oder so ?
(vll. beim IIS unterdrückt ?)

Einfach ein error_reporting(E_ALL); vorne hin ;)

Btw.: FreeTypeLibrary installiert ?

jensw_2000 1. Jun 2006 09:56

Re: [PHP] imagestring() bzw. imagettftext() und externe Forn
 
Zitat:

Zitat von jfheins
Kommt irgendeine Warnung/Notice oder so ?
(vll. beim IIS unterdrückt ?)

Einfach ein error_reporting(E_ALL); vorne hin ;)

Btw.: FreeTypeLibrary installiert ?

Fehler kommen keine.

Laut phpinfo() fehlt beim ISP der Freetype Support. Das wirds dann wohl sein oder ?
Habe ich eine Möglichkeit das "dynamisch" einzubinden oder muss ich darauf warten, das der ISP irgendwann mal die FreeType-Lib installiert ?

jensw_2000 1. Jun 2006 12:14

Re: [PHP] imagestring() bzw. imagettftext() und externe Forn
 
@jfheins

Ich habe mit meinem ISP telefoniert. Der Supporter meinte, das ich mein Webspace nur von PHP4 auf PHP5 umstellen muss, weil der ISP dort die FreeType-Library mit eingebunden hat.
Also... rein in den Web-Konfigurator, PHP5 eingestellt und ... Es geht :stupid:

Danke für den Tip.

jfheins 1. Jun 2006 12:21

Re: [PHP] imagestring() bzw. imagettftext() und externe Forn
 
Na dann ist ja alles wunderbar :)

Das mit FreeType-Library stand übrigens auf der PHP-Doku-Seite :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz