schriftart vom server laden? mouse over?

hallo

ich möchte ein navigation mit einer schriftart machen, die normalerweise niemand hat..und da möchte ich mit mouse over arbeiten, sodass wenn man die mouse über dem link hat sich der link um einige schriftgrößen vergrößert..

so..da ist schon mein erstes problem.. die schrift arbeit ein bisschen mit verlauf.. also sind außen ein paar graue pixel etc.. wenn ich das nun in gif speichere, ist jeder pixel pechschwarz und es sieht nicht mehr schön aus..
hab es dann mit .png versucht.. in mozilla firefox auch lein problem..aber in IE unterstützt der die transparenz nicht..
hab dann überlegt ob man vielleicht die schriftart auf den server laden kann und das maan in css angibt das er die schriftart verwenden soll.. bin da aber leider auch nich wirklich weiter gekommen.. weil teilweise IE das nicht unterstützt etc.
das problem ist, ich will anschließend auch einige menüpunkte aus einer mysql datenbank auslesen..

weiß nicht mehr weiter..wie soll ich das problem lösen? will einfach nur ne navi mit einer besonderen schriftart mit einfachem mouseover effekt..

LG Philipp
 
Es gibt ein paar Möglichkeiten, um Schriftarten vom Server laden zu lassen, aber die sind nicht sonderlich gut unterstützt. Die wohl einfachste Möglichkeit wäre es wohl, die Grafiken serverseitig einfach mittels PHP und GDlib generieren zu lassen. So kannst du die Beschriftungen aus der Datenbank auslesen, jede Schriftart verwenden die du willst und auch entsprechendes Antialiasing auf dem Hintergrund erreichen.
 
Die wohl einfachste Möglichkeit wäre es wohl, die Grafiken serverseitig einfach mittels PHP und GDlib generieren zu lassen. So kannst du die Beschriftungen aus der Datenbank auslesen, jede Schriftart verwenden die du willst und auch entsprechendes Antialiasing auf dem Hintergrund erreichen.

wow..hört sich super an.. aber auf der seite die du da angegeben hast versteh ich das irgendwie noch nich so ganz.. kennt vielleicht jemand einen link wo das nochmal genau erklärt wird?? oder wenn es realtiv einfach is kann mir das dann jemand nochmal genauer erklären? mir würde auch ein einfacjes beispiel reichen.. ;)

greetz Philipp
 
schon mal vielen dank.. hab schon angefangen mir das durchzulesen..ich glaub das is wirklich gut erklärt..

aber währrend des lesens ist mir die nächste frage eingefallen..
ist es überhaupt möglich mit diesen von php erzeugten grafiken mouse over zu machen? weil man müsste ja dann jeweils 2 grafiken mit unterschiedlicher schriftgröße erstellen die anhand css oder so ausgetauscht werden können..

geht das denn überhaupt?!

Philipp

EDIT: und ist es möglich .gif's mit tranparenttem hintergund zu erstellen?!
 
Ja, das geht beides
schau dir doch mal einfach auf www.selfphp4.de die image-funktionen durch, mit imagecolortransparent() kann man eine Farbe als transparent definieren

Und das andere lässt sich per css-Klassen definieren:

a:mouseover{

}
Da einfach ein anderes Hintergrundbild angeben, als beim normalen a

(Wüsste jetzt keinen so einfachen Weg ohne das Bild einfach als Hintergrundbild zu nehmen)
 
Wenn du aber jeden einzelnen Schriftzug im Menü von PHP machen lässt, musst du dir glaub ich bald einen ganzen Servercluster kaufen, weil das ne Menge Prozessorlast macht ...

Normalerweise dürften bei gifs nicht alle Pixel Schwarz sein, da hast du sicher was falsch gemacht.
Am Besten die Schriftart runterladen und dann die Grafiken mit Photoshop oder Gimp erstellen.

Normale pngs ohne Alphatransparenzen müsste aber eigentlich auch der Internet Explorer untschtützen glaub ich.
 
1. Is die dann noch höher und 2. kannste dann deinen Mouseover vergessen, weil das ereugen und laden dann sicher 5 sec dauert

Wenn schon, dann per PHP erstellen, abspeichern und das gespeicherte Bild abrufen
 
wie speicher ich das denn ab??
hat es überhaupt sinn das so zu machen?!

VG Philipp

EDIT: gibt es noch eine ganz andere möglichkeit? was empfehlt ihr mir?
 
Abspeichern, indem du in imagegif() den dateinamen als parameter angibst, also imagegif('datei.gif');
Oder natürlich mit imagejpeg() odr imagepng()
 
PHP:
<?php
 
$groesse  ='22';
$text     ='test';

header('Content-type: image/gif');
 
// Setup[QUOTE]Die Grafik "http://www.egd-2010.de/upload/grafik_mit_gdlib_erzeugen.php" kann nicht angezeigt werden, weil sie Fehler enthält.[/QUOTE]
$fontfile         = 'erasdust.ttf';
$fontsize         = $groesse; 
$fontangle        = 0; 
 
// Ausmaße des Feldes ermitteln, den unser Text braucht
$textfield        = imagettfbbox($fontsize, $fontangle, $fontfile, $text); 
$text_size_x      = (abs($textfield[4] - $textfield[0]) + 5);
$text_size_y      = (abs($textfield[1] - $textfield[7]) + 20);
$text_pos_x       = 0;
$text_pos_y       = ($text_size_y - 15);
 
// Unser Arbeitsbild erstellen
$new_picture      = imagecreate($text_size_x, $text_size_y);
 
// Farben bestimmen
$background_color = imagecolorallocate($new_picture, 255, 255, 255);
$text_color       = imagecolorallocate($new_picture, 0, 0, 0);
 
imagefill($new_picture, 0, 0, $background_color);
imagettftext($new_picture, $fontsize, $fontangle, $text_pos_x, $text_pos_y, $text_color, $fontfile, $text);
imagecolortransparent($new_picture, $background_color);
 
// Ausgabe des Bildes und anschliessende Löschung aus dem Speicher
imagegif('test.gif');

 
?>


das is jetz mein code..hab auch ersma die variablen in der datei definiert..
ich hab in imagegif() den datei namen geschrieben.. und das imagedestroy demnach wieder weg gemacht weil das ja sons irgendwie kein sinn hätte...

wenn ich das nun hochlade erscheint nur der text

Die Grafik "http://www.egd-2010.de/upload/grafik_mit_gdlib_erzeugen.php" kann nicht angezeigt werden, weil sie Fehler enthält.

was mach ich falsch?!

Danke Philipp
 
Zum einen macht das imagedestroy() NACH dem imagegif() durchaus sinn
Zum anderen muss das header() raus, weil du ja das Bild nicht ausgibst, sondern abspeicherst.
Schau mal nach, ob eine test.gif vorhanden ist.
 
hab alles gemacht was du gesagt hast..aber jetz kommt diese fehlermeldung..

Warning: imagegif(): supplied argument is not a valid Image resource in /home/www/kunden/egd-2010.de/upload/grafik_mit_gdlib_erzeugen.php on line 31

wo is in zeile 31 n fehler?!

PHP:
<?php
 
$groesse  ='22';
$text     ='test';

 
// Setup
$fontfile         = 'erasdust.ttf';
$fontsize         = $groesse; 
$fontangle        = 0; 
 
// Ausmaße des Feldes ermitteln, den unser Text braucht
$textfield        = imagettfbbox($fontsize, $fontangle, $fontfile, $text); 
$text_size_x      = (abs($textfield[4] - $textfield[0]) + 5);
$text_size_y      = (abs($textfield[1] - $textfield[7]) + 20);
$text_pos_x       = 0;
$text_pos_y       = ($text_size_y - 15);
 
// Unser Arbeitsbild erstellen
$new_picture      = imagecreate($text_size_x, $text_size_y);
 
// Farben bestimmen
$background_color = imagecolorallocate($new_picture, 255, 255, 255);
$text_color       = imagecolorallocate($new_picture, 0, 0, 0);
 
imagefill($new_picture, 0, 0, $background_color);
imagettftext($new_picture, $fontsize, $fontangle, $text_pos_x, $text_pos_y, $text_color, $fontfile, $text);
imagecolortransparent($new_picture, $background_color);
 
// Ausgabe des Bildes und anschliessende Löschung aus dem Speicher
imagegif('test.gif');
imagedestroy($new_picture);

?>

Danke Philipp
 
Jo, da muss vor den namen trozdem erstmal die variable hin, also imagegif($new_picture, 'test.gif');
Dann klappts aber
 
Zurück
Oben