Bild-"Hintergrund" wiederholen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abs
abstand
ausgabe
beitrag
berechnung
bescheid
bestaunen
bild
gerade mal
gesamte page
groes bild
hilfe
hhen
image
men
pixel
schneller beitrag
schriftart
seitenabstand
zentrierung
-
Hi,
ich hab bei php.net und hier schon rumgesucht aber nichts gefunden (vielleicht bin ich auch blind).
Was ich brauche, ist am besten eine Funktion, die z.B. ein 1x40 px grosses Bild kopiert und dann wiederholt (zusammensetzt), sodass z.B. das bild 100x40 px gross ist (wie bei css mit background-repeat: repeat;, das ist zwar ein dummes bsp., aber ich hoffe es ist so verst?ndlich).
Hoffentlich versteh ihr, was ich meine, sonst sagt mir ruhig bescheid.
W?rde mich auf Hilfe freuen.
mfg,
hr -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
genau so was hab ich letztens gecodet...
Allerdings f?gt mir mein Script auch noch Text hinzu...
Ich poste dir mal den Code:
$fontsize = 6; //Die Schriftgr??e (Pixel) $schriftart = "fonts/hooge.ttf"; //Pfad zur Schriftart $bildhoehe = 40; //Die H?he des Hintergrunds (Pixel) $orginalhoehe = 40; //Die H?he des Orginalbildes (Pixel) $orginalbreite = 1; //Die Breite des Orginalbildes (Pixel) $winkel = 0; //Winkel f?r Schr?gtext (?) $seitenabstand = 8; //Abstand vom Text zur Seite (Pixel) $titel = "$_GET[name]"; //Text, der in das Bild geschrieben werden soll. $textwerte = imagettfbbox($fontsize, $winkel, $schriftart, $titel); //Auslesen der Eckdaten des Textes $textwerte[1] = abs($textwerte[1]); //Berechnung $textwerte[5] = abs($textwerte[5]); //der H?he des Textes. $hoehe = $textwerte[5]- $textwerte[1]; //Dies dient $abstandoben = $bildhoehe - $hoehe; //zur vertikalen $abstandoben = $abstandoben / 2; //Zentrierung! $abstandoben = $abstandoben + $hoehe; //Die Schriftgr??e wird oben angegeben! $breitea = $textwerte[4]- $textwerte[0]; //Berechnung der horizontalen Breite. $breiteb = $seitenabstand * 2; //Dies dient unter Ber?cksichtigung des $breite = $breitea + $breiteb; //gew?nschten Seitenabstandes zur horizontalen Zentrierung. $image = imagecreatefrompng("menue.png"); $image1 = imagecreate($breite,$bildhoehe); imagecopyresized($image1,$image,0,0,0,0,$breite,$bildhoehe,$orginalbreite,$orginalhoehe); $font_c = imagecolorallocate($image1,255,255,255); imagettftext ($image1,$fontsize,$winkel,$seitenabstand,$abstandoben,$font_c,$schriftart,$titel); header("Content-type: image/png"); imagepng($image1);
Vieleicht hilfts dir was... -
Du schreibst doch mit PHP HTML-Code... also kannst du doch ruhig den entsprechenden HTML-Code benutzen. In SelfHTML und SelfPHP steht, wie es geht. ^^
Es kommt halt drauf an, ob es ein Tabellenhintergrund sein soll, oder die gesamte Page...
Edit: Da war jemand schneller ^^?
Beitrag ge?ndert am 14.02.2006 22:40 von bluedragonebook -
Hi,
schonmal Danke.
Ich dachte, dass man mit imagecopyresized nur ein Bild verzerren kann, oder bin ich da falsch?
Ich m?chte das bild ja wiederholen und nicht verzerren.
mfg,
hr -
Einfache Rechnung:
Wenn ein Bild 1px breit ist, und dus "zerrst" wirds dann nicht widerholt?
Du kannst das Resultat hier bestaunen:
http://www.gimp4u.de
Die Buttons unten sind "gezerrt"... -
*lach*
bei einem Pixel Breite wirds immer wiederholt ^^
Hmmm, aber bei 2 Pixel oder mehr Breite geht das nat?rlich nicht. Da solltest du nach einer anderen L?sung suchen. ^^
Ich habe gerade mal SelfPHP durchforstet, aber ich denke, da hilft echt nur die Ausgabe von HTML-Code...
Beitrag ge?ndert am 14.02.2006 22:49 von bluedragonebook -
Hi,
aber wenn das Bild z.B. vertikale Linien hat, dann werden die doch breiter und das sollte ja nicht passieren.
Hab ich da jetzt was falsch verstanden?
mfg,
hr -
Na ja, mein Script kannst auch nur f?r Hintergr?nde verwenden, die immer horizontal wiederholt werden sollen und 1px breit sind...
F?r vertikale Hintergr?nde sieht das ganze dann wieder komplett anders aus. -
Hi,
aber wie kann ich das dann mit Bildern machen, die breiter als 1px sind?
Gibt es daf?r ?berhaupt funktionionen?
mfg,
hr -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage