TTF-Fonts auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • TTF-Fonts auslesen

    Hallo PHP-Profies,

    gibt es eigentlich die Möglichkeit, TTF-Fonts aus einem
    Verzeichnis auslesen zu lassen und diese als Schriftbeispiel
    [abcdefg... 0123456789] in einer Tabelle anzeigen zu lassen.

    Gruß Manuela

  • #2
    Ja, das dir auslesen, und mittels function.imagettftext kleine grafiken anfertigen.

    Gruss timepoint5
    Möglich ist alles!

    Kommentar


    • #3
      Danke für die schnelle Antwort,
      jedoch bekomme ich bei folgendem Code :

      PHP-Code:
      1.   <?php
      2.   Header 
      ("Content-type: image/gif");
      3.   $im imagecreate (40030);
      4.   $black ImageColorAllocate ($im000);
      5.   $white ImageColorAllocate ($im255255255);
      6.   ImageTTFText ($im2001020$white"/ttf_fonts/lcd.ttf",
      7.   "0123456789... Omega: Ω");
      8.   ImageGif ($im);
      9.   ImageDestroy ($im);
      10. ?>
      folgende Fehlermeldung :

      Warning: imagettftext() [function.imagettftext]: Could not find/open font in /usr/local/httpd/htdocs/kunden/web152/html/ttffonts.php on line 7

      Fatal error: Call to undefined function: imagegif() in /usr/local/httpd/htdocs/kunden/web152/html/ttffonts.php on line 8

      Gruß Manuela

      Kommentar


      • #4
        Da scheinen die fonts in einem anderen verzeichniss zu sein oder falsch benannt?
        Möglich ist alles!

        Kommentar


        • #5
          Doch den Font gibt es und das
          Verzeichnis ist auch richtig !

          Gruß Manuela
          Zuletzt geändert von manuelakersten; 06.04.2003, 22:07.

          Kommentar


          • #6
            An was könnte es liegen,
            selbst den Inhalt kann ich nicht auslesen.

            PHP-Code:
            <?php
            $accepted_types 
            = array("php");

            $directorylist[0];
            $curent_dir "/";

            $dir opendir($curent_dir);
            $count 0;

            while (
            $file readdir($dir)){
                
            // See if the file extension is allowed
                
            if(in_array(substr($file,-3),$accepted_types)) {
                    
            $directorylist[$count] = $file;
                    
            $count $count 1;
                }
            }
            ?>
            auch hier wieder folgende Fehlermeldung :

            Warning: opendir() [function.opendir]: open_basedir restriction in effect. File(/) is not within the allowed path(s): (/usr/local/httpd/htdocs/kunden/web152) in /usr/local/httpd/htdocs/kunden/web152/html/ttffonts.php on line 7

            Warning: opendir(/) [function.opendir]: failed to open dir: Operation not permitted in /usr/local/httpd/htdocs/kunden/web152/html/ttffonts.php on line 7

            Warning: readdir(): supplied argument is not a valid Directory resource in /usr/local/httpd/htdocs/kunden/web152/html/ttffonts.php on line 10

            Ich habe alle Rechte auf '777' gesetzt, ich weis nicht mehr weiter.

            Gruß Manuela

            Kommentar


            • #7
              1. setz hier mal nen absoluten pfad zum font-verz. ein:
              PHP-Code:
              ImageTTFText ($im2001020$white"/ttf_fonts/lcd.ttf","0123456789... Omega: Ω"); 
              2. je nach server gibt es schonmal mecker wenn die font-datei in grossbuchstaben geschrieben ist

              3. check mal deine gd (phpinfo()) ob du überhaupt gifs bearbeiten kannst
              sonst nimmst du besser "png"
              Kissolino.com

              Kommentar


              • #8
                Zu 1.) wenn ich den absoluten Pfad einsetze bekomme ich folgende Fehlermeldung :

                <br />
                <b>Fatal error</b>: Call to undefined function: imagegif() in <b>/usr/local/httpd/htdocs/kunden/web152/html/ttffonts.php</b> on line <b>8</b><br />


                Zu 2.) Die Datei ist klein geschrieben
                Zu 3.) lt. PHPINFO sollte ich es bearbeiten können


                Mhhh, was könnte es noch sein ?

                Gruß Manuela
                Zuletzt geändert von manuelakersten; 06.04.2003, 22:09.

                Kommentar


                • #9
                  keine ahnung bei mir funzt es und laut deiner phpinfo() sollte es auch gehen:

                  PHP-Code:
                  // mein test
                  Header ("Content-type: image/gif");
                  $im imagecreate (40030);
                  $black ImageColorAllocate ($im000);
                  $white ImageColorAllocate ($im255255255);
                  ImageTTFText ($im2001020$white"/www/htdocs/v073844/fonts/arialbd.ttf","0123456789... Omega: Ω");
                  imagegif($im);
                  imagedestroy ($im); 

                  versuchs spasseshalber mal mit ner anderen gd-fkt:
                  PHP-Code:
                  Header ("Content-type: image/jpeg");
                  $im imagecreate (40030);
                  $black ImageColorAllocate ($im000);
                  $white ImageColorAllocate ($im255255255);
                  ImageTTFText ($im2001020$white"/www/htdocs/v073844/fonts/arialbd.ttf","0123456789... Omega: Ω");
                  imagejpeg($im,"",100);
                  imagedestroy ($im); 
                  zu 2.: war nen grundsätzlicher tipp (=> DRAGONW.ttf)
                  Kissolino.com

                  Kommentar


                  • #10
                    jo, das mit 'jpeg' funktioniert Komisch

                    Danke, hast Du vielleicht nun noch eine Idee,
                    wie man alle enthaltene Fonts auflistet,
                    ohne alle Fontnamen per Hand ein zu geben !?

                    Gruß Manuela

                    Kommentar


                    • #11
                      wie wärs mit nem simplen directory-listing
                      in ner for-schleife?

                      such mal hier im forum nach "dateien auslesen"
                      oder "verzeichnis auslesen". sollten genug schnipsel
                      dabei sein.
                      Kissolino.com

                      Kommentar


                      • #12
                        Sorry noch nie gemacht bis jetzt habe
                        ich mich nur mit Datenbankabfragen beschäftigt.

                        <?php
                        Header ("Content-type: image/jpeg");

                        $dir = "ttf_fonts/";
                        $handle = opendir ($dir);
                        while (false !== ($file = readdir ($handle))) {

                        $im = imagecreate (400, 30);
                        $black = ImageColorAllocate ($im, 0, 0, 0);
                        $white = ImageColorAllocate ($im, 255, 255, 255);
                        ImageTTFText ($im, 20, 0, 10, 20, $white, "/www/htdocs/v073844/fonts/arialbd.ttf","0123456789... Omega: Ω");
                        imagejpeg($im,"",100);
                        imagedestroy ($im);
                        }
                        ?>

                        So hier habe ich mal das Beispiel, jedoch wüsste ich nicht
                        wie ich die zweite URL angeben muss :

                        ' $dir/$file ' So ????????

                        Für ein eine kleine Hilfe wäre ich dankbar

                        Gruß Manuela

                        Kommentar


                        • #13
                          PHP-Code:
                          $verz=opendir ('.');
                          while (
                          $file readdir ($verz)) 
                          {  
                             if(
                          $file != "." || $file != "..")
                            {
                            echo 
                          "$file <br>";
                            
                          // ausgabe der dateinamen des ordner
                            // hier bild kreieren oder ein array mit dateinamen schreiben (chmod nicht vergessen)
                            // z.B. ... imagejpeg($img, "ordner/dateiname.jpg",100); ...
                            
                          }
                          }
                          closedir($verz); 
                          ich würde die bilder allerdings auf die platte schreiben
                          wenn sich die fonts nicht minütlich ändern (s.o.).
                          und die ausgabe dann über html

                          oder du machst eine bild.php mit deinem script. fügst den aufruf
                          <img src="bild.php?font=fontname">
                          (fontname aus dem array) in deine ausgabe ein.

                          oder ... es gibt bestimmt noch nen paar andere optionen

                          gruss wurzel
                          Kissolino.com

                          Kommentar


                          • #14
                            Danke für Umstände die ich gemacht habe.

                            Ja in Zukunft kann sich der Inhalt des verzeichnisses
                            stark ändern, da die User selber Fonts auf den Server laden können.

                            Jedoch muß ich erlich sagen, daß ich bei dem von
                            Dir geposteten Script überhaupt nicht durchblicke,
                            sorry für meine Blondheit **GRINS**.


                            Gruß Manuela

                            Kommentar


                            • #15
                              sorry für meine Blondheit **GRINS**.
                              ... könnte schlimmer sein

                              du must nur die schnipsel miteinander verbinden:
                              PHP-Code:
                              // bild.php
                              //$schrift= "/www/htdocs/v073844/fonts/".$_GET['font'];  // bei register_globals
                              $schrift"/www/htdocs/v073844/fonts/".$font;
                              $im imagecreate (40030);
                              $black ImageColorAllocate ($im000);
                              $white ImageColorAllocate ($im255255255);
                              ImageTTFText ($im2001020$white$schrift,"0123456789... Omega: Ω");
                              Header ("Content-type: image/jpeg");
                              imagejpeg($im,"",100);
                              imagedestroy ($im); 
                              die ausgabe:
                              PHP-Code:
                              // zeige.php
                              $verz=opendir ('/www/htdocs/v073844/fonts/');
                              while (
                              $file readdir ($verz)) 
                              {  
                                 if(
                              $file != "." || $file != "..")
                                {
                                print 
                              "<img src='bild.php?font=".$file."' width='400' height='30' alt='".$file."'><br>";
                                }
                              }
                              closedir($verz); 
                              beim aufruf der zeige.php sollte er eigentlich für jeden gefundenen font
                              ein bild generieren, wie immer ohne gewähr.
                              Kissolino.com

                              Kommentar

                              Lädt...
                              X