Ergebnis 1 bis 3 von 3

Thema: [PHP] Freetype-Fonts + Antialiasing + Imagefunktionen

  1. #1

    [PHP] Freetype-Fonts + Antialiasing + Imagefunktionen

    Hmja. Hat schonmal jemand von euch einen anderen Font verwendet im Zusammenhang mit den Imagefunktionen als den Standardfont den man mit imagestring() verwendet, wenn man zuvor keinen anderen Font definiert hat?

    Ich habs zwar schon gemacht, aber ich find nur häßliche Freetype-Fonts ohne Antialiasing.

    Kennt jemand eine Möglichkeit einen String in ein Bild zu schreiben, der dann noch schön mit Antialiasing ge...-smoothed wird?

    Hängt das Antialiasing überhaupt mit dem benutzen Freetype-Fontsatz zusammen, oder ist dafür eine PHP-Funktion zuständig?

  2. #2
    Es gibt in PHP die Funktion imageantialias(). Ich hab sie selber noch nicht benutzt, soll aber ganz vernünftige Ergebnisse erzielen. Allerdings ist dafür die GD-Lib erforderlich.
    Ansonsten kann man meines Wissens auch bei der Funktion imagettftext() einstellen, ob Antaliasing aktiviert werden soll oder nicht. Auch hier ist die GD-Lib und zusätzlich noch die FreeType-Lib notwendig.
    Vielleicht führen die Funktionen ja zu dem von dir erwarteten Ergebnis.

  3. #3
    Zitat Zitat von NiKrYss
    Es gibt in PHP die Funktion imageantialias(). Ich hab sie selber noch nicht benutzt, soll aber ganz vernünftige Ergebnisse erzielen. Allerdings ist dafür die GD-Lib erforderlich.
    Ansonsten kann man meines Wissens auch bei der Funktion imagettftext() einstellen, ob Antaliasing aktiviert werden soll oder nicht. Auch hier ist die GD-Lib und zusätzlich noch die FreeType-Lib notwendig.
    Vielleicht führen die Funktionen ja zu dem von dir erwarteten Ergebnis.
    Juhuu!
    imagettftext() hats für mich gebracht. Ich raff nur nicht, weshalb ich die Funktion immer übersehen hab. XD


    Nuja, wieauchimmer.
    Danke für den Hinweis.
    Hier mein neues Bildchen, das ich gleich in meine Sig pack:


    Hier das Script, wen es interessiert:
    PHP-Code:
    <?php
    // Includet die Datei die die Daten für die Datenbank enthält und zu ihr verbindet
        
    include("config.inc.php");
        
    // liest aus der Datenbank, was zur Zeit gehört wird. 
    // Ist der Timestamp zu alt, wird "- n/a -" ausgegeben.
        
    $stamp=time()-900;
        
    $data_get=mysql_query("SELECT song FROM winamp WHERE id='1' && stamp>='$stamp'");
        if(
    mysql_num_rows($data_get)>0){
          
    $data=mysql_result($data_get,0,song);
          if(!empty(
    $data)) { 
            
    $data=trim($data);
            if(
    strlen($data)>150){
              
    $data=substr($data,0,150)."...";
            }
          }
        }else{
          
    $data "- n/a -";
        }

    // Initiiert den Bildoutput, sagt dem Browser das es ein png-Bild ist
    // und sagt dem Browser das er das Bild nicht cachen soll.
        
    header("Content-type: image/png");
        
    header("Cache-Control: no-cache, must-revalidate");
        
    header("Pragma: no-cache");

    // Ermittelt die Breite des erzeugten Textes in Pixeln
    // und setzt Limits damit das Bild nicht die Sig sprengt oder zu klein wird.
        
    $textsize=ImageTTFBBox(7,0,"elemente/arial.ttf",$data."...");   
        if(
    $textsize[4]<100){
          
    $textsize[4]="100";
        }elseif(
    $textsize[4]>500){
          
    $textsize[4]="500";
        }
        
    // Erstellt das Bild
        
    $im ImageCreate($textsize[4],24);

    // Legt Farben fest. Erste definierte Farbe ist Hintergrundfarbe
        
    $black =     ImageColorAllocate ($im000);
        
    $white =    ImageColorAllocate ($im255255255);

    // Erzeugt den Farbverlauf
        
    $i=1;
        while(
    $i<=22){
          
    $faktor=100+$i*5;
          
    $verlauf ImageColorAllocate($im$faktor$faktor255);
          
    ImageFilledRectangle($im,1,$i,$textsize[4]-2,22,$verlauf);
          
    $i++;
        }

    // Schreibt den Text auf das Bild
        
    ImageTTFText($im70210$white"elemente/arial.ttf","Now listening:");
        
    ImageTTFText($im70220$black"elemente/arial.ttf","$data");

    // Sendet das Bild an den Browser und zerstört die temporären Daten dann sofort.
        
    ImagePNG ($im);
        
    imagedestroy($im);
    ?>
    Um Winamp automatisch die aktuell abgespielten Titel auf einem Server updaten zu lassen, benutz ich das Plugin Do Something und benutz dessen URL GET-Funktionalität.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •