Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

schriftart vom server laden? mouse over?

Diskussion: schriftart vom server laden? mouse over? im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige hallo ich möchte ein navigation mit einer schriftart machen, die normalerweise niemand hat..und da möchte ich mit mouse over ...

Antwort
Alt 17.02.06, 18:36   #1 (permalink)
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard schriftart vom server laden? mouse over?

Anzeige

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

bimbo510 ist offline   Mit Zitat antworten
Alt 17.02.06, 22:01   #2 (permalink)
LX
Moderator
 
Registriert seit: 14.02.06
LX Leistung: Z3
LX eine Nachricht über ICQ schicken LX eine Nachricht über AIM schicken LX eine Nachricht über Yahoo! schicken
Likes: 21
Lightbulb

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.
__________________
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett

JS BB LX UP
LX ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 18.02.06, 17:51   #3 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Angry

Zitat:
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
bimbo510 ist offline   Mit Zitat antworten
Alt 18.02.06, 18:28   #4 (permalink)
 
Registriert seit: 07.12.03
Mechanius Leistung: Z3
Likes: 2
Standard

ich glaub das hier http://www.macx.de/essays/gdlib/schrifteinbettung.html dürfte helfen
Mechanius ist offline   Mit Zitat antworten
Alt 18.02.06, 18:35   #5 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

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?!
bimbo510 ist offline   Mit Zitat antworten
Alt 18.02.06, 19:16   #6 (permalink)
 
Registriert seit: 22.05.05
Ranger Leistung: Facit NTK
Likes: 0
Standard

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)
Ranger ist offline   Mit Zitat antworten
Alt 18.02.06, 22:24   #7 (permalink)
 
Registriert seit: 23.03.05
xblax Leistung: 8086
Likes: 22
Standard

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.
xblax ist offline   Mit Zitat antworten
Alt 19.02.06, 13:02   #8 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

http://www.egd-2010.de/upload/grafik...ezZ&groesse=30

is die server auslastung auch so schlimm wenn ich das in einer datei mache und jeweils als variabel den text und die schriftgröße anhängen?
kann ich z.b auch mouseover mit
http://www.egd-2010.de/upload/grafik...der&groesse=30
http://www.egd-2010.de/upload/grafik...der&groesse=40
machen?
danke..

LG Philipp
bimbo510 ist offline   Mit Zitat antworten
Alt 19.02.06, 13:25   #9 (permalink)
 
Registriert seit: 22.05.05
Ranger Leistung: Facit NTK
Likes: 0
Standard

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
Ranger ist offline   Mit Zitat antworten
Alt 19.02.06, 13:30   #10 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

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?
bimbo510 ist offline   Mit Zitat antworten
Alt 19.02.06, 16:13   #11 (permalink)
 
Registriert seit: 22.05.05
Ranger Leistung: Facit NTK
Likes: 0
Standard

Abspeichern, indem du in imagegif() den dateinamen als parameter angibst, also imagegif('datei.gif');
Oder natürlich mit imagejpeg() odr imagepng()
Ranger ist offline   Mit Zitat antworten
Alt 20.02.06, 10:02   #12 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

PHP-Code:
<?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_picture255255255);
$text_color       imagecolorallocate($new_picture000);
 
imagefill($new_picture00$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

Zitat:
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
bimbo510 ist offline   Mit Zitat antworten
Alt 20.02.06, 12:55   #13 (permalink)
 
Registriert seit: 22.05.05
Ranger Leistung: Facit NTK
Likes: 0
Standard

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.
Ranger ist offline   Mit Zitat antworten
Alt 20.02.06, 17:11   #14 (permalink)
Themenstarter
 
Registriert seit: 28.12.05
bimbo510 Leistung: Facit NTK
bimbo510 eine Nachricht über ICQ schicken
Likes: 0
Standard

hab alles gemacht was du gesagt hast..aber jetz kommt diese fehlermeldung..

Zitat:
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-Code:
<?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_picture255255255);
$text_color       imagecolorallocate($new_picture000);
 
imagefill($new_picture00$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
bimbo510 ist offline   Mit Zitat antworten
Alt 20.02.06, 19:50   #15 (permalink)
 
Registriert seit: 22.05.05
Ranger Leistung: Facit NTK
Likes: 0
Standard

Jo, da muss vor den namen trozdem erstmal die variable hin, also imagegif($new_picture, 'test.gif');
Dann klappts aber
Ranger ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » schriftart vom server laden? mouse over?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mouse Over effekt Clark Kent (Web-) Design und webbasierte Sprachen 5 19.09.07 19:18
PHP Inhalte von Server laden olmz Doppelte Beiträge 10 04.11.06 18:53
Mouse Gestures goflo Downloads 8 29.04.06 20:14
Problem mit optical mouse k2k@HB Hardware Probleme 7 15.06.05 14:41
Licq: Contact list vom icq server laden c-geek-c Linux/UNIX 5 18.08.03 12:42


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61