Permalänk
Medlem

[php] Text på bild.

Hej hej. Jag sitter och leker lite med imagestring() och lägger in text på bilder.

Vilket fall som helst så går det prima, men dock med ett litet iriterande problem. Jag kan inte använda "å".

Här kodsnutten som jag använder mig av.

header ("Content-type: image/jpeg"); $string = $text; $md5 = md5($string); $string = str_replace("^+", $md5, $string); $string = str_replace("+", " ", $string); $string = str_replace($md5, "+", $string); $width = imagefontwidth($font) * strlen($string); $height = imagefontheight($font +20); $image = @imagecreatefromjpeg($bilden); $white = imagecolorallocate($image, 189, 189, 189); $black = imagecolorallocate($image, 0, 0, 0); $imgheight = imagesy($image); imagestring($image, 3, $varx,$varz, $string, $black); imagejpeg($image); imagedestroy($image);

Skulle vara mycket tacksam om nån skulle kunna förklara för mig hur jag kan klämma in å:n i mina texter.

Tack på förhand.

Visa signatur

www.Cleric.nu - Min sida.
www.geupp.com - Det blir lättast så.

Permalänk
Medlem

Om du skickar som query-string kanske du måste köra en urldecode() efteråt. Visas inga tecken där du har å, eller visas konstiga tecken? Vilka?

Permalänk
Hedersmedlem
Permalänk
Medlem

Finns 'å' i teckensnittet du använder?

Visa signatur

"'We're pro-life.' Eww, you look it! You look like you're filled with life."
UNIX man pages online, GNU/Linux-schemaprogram för LiU

Permalänk
Medlem

Malesca: Nepp jag skickar inte som en querystring, så jag tror inte att urldecode() kommer göra tricket. Och tecknen som visas är "Í".

Teetow: Nice, det där funkar fint för dig. Använde du det scripet som jag la upp eller är det ett eget. Om det är ett annat skulle jag kunna få titta på det?
Använder du imagettftext() och har FreeType istallerat. För jag antog att det kunde lösa mina problem men jag körde fast på när man skulle få Freetype att fungera.

Piltvenom: Det verkar inte så. Men när man använder sig av imagestring så kan man inte välja vilken font man ska ladda......så vitt jag har förstått det iaf.

Tack för responsen.

Visa signatur

www.Cleric.nu - Min sida.
www.geupp.com - Det blir lättast så.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av cleric
Malesca: Nepp jag skickar inte som en querystring, så jag tror inte att urldecode() kommer göra tricket. Och tecknen som visas är "Í".

Det låter nästan teckenkodningsrelaterat (encoding), fast du verkar ju ha samma "å" som alla andra i den här tråden.

Nu testade jag din kod (modifierad så den funkade) och fick samma fel, hm. Säkert bara en fråga om att tecknen inte finns (med den teckenkoden) i det typsnitt som används av imagestring(). imagettftext() funkade dock fint. Jag lade "arial.ttf" (från c:\windows\fonts) i samma katalog som scriptet.

<? $string = "abcÅÄÖåäö"; header ("Content-type: image/jpeg"); $image = @imagecreatetruecolor(155,100); $white = imagecolorallocate($image, 189, 189, 189); imagestring($image, 3, 0, 0, $string, $white); putenv('GDFONTPATH=' . realpath('.')); // Enligt PHP-manualens rd $font = 'arial'; imagettftext($image, 20, 350, 10, 50, $white, $font, $string); imagejpeg($image); imagedestroy($image); ?>

Permalänk
Hedersmedlem

Det där är min bitmapfontrenderer. Jag skrev den för att kunna göra fullcolor fonts (lite sådär härligt retro), men testfonten är enfärgad.

Den anropas som <img src="image.php?text=blah&font=fontnamn&color=FF0022" />

sourcekod:

http://teewars.com/fuel/image.phps

Edit: det funkar alltså så att scriptet, för varje tecken, letar efter en fil vars namn är motsvarande unicode-siffra. så A heter 065.png osv. fontnamnet avgör vilken katalog det letar i, och om color anges färgas tecknen om, annars blir de vita (på transparent bakgrund).

...Dessutom cachas gamla queries, så att man slipper rita om i onödan.

Kolla menyn på http://teewars.com/fuel för att se det in action.

Permalänk
Medlem

Tack för alla svar. Nu med Malesca's script så fick jag det att funka. Jag trodde dock att man behövde FreeFile för att få det att funka men tydligen så behövde man inte.

Teetow: Tack för din kod. Jag kanske kollar på den senare.

Tack iaf.

Visa signatur

www.Cleric.nu - Min sida.
www.geupp.com - Det blir lättast så.