/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Kan ikke skrive æøå med ImageString (GD)
Fra : J. Nielsen


Dato : 08-12-03 21:36

Hej!

Jeg vil gerne lave en jpg-fil, hvori der står Konedøv (nevermind teksten,
det er en _meget_ lang historie .

Til det har jeg slået mig på de imagefunktioner, der ligger i gd.

Altsammen helt fint bortset fra to ting. Den ene er: Jeg kan ikke skrive
æ,ø,å med funktionen. Jeg har:

/* Image oprettes */
$nametag = imagecreate(25,100);

/* Strengen skrives i billedet */
$bg = imagecolorallocate($nametag, 240, 240, 240);
$textcolor = imagecolorallocate($nametag, 0, 0, 0);
imagestringup($nametag, 5, 4, 98, "Konedøv", $textcolor);

/* Billedet sendes til browser og fjernes fra hukommelsen */
header('Content-type: image/jpeg');
imageJPEG($nametag);
imageDestroy($nametag);

Hvis jeg retter "Konedøv" til "Whatever" så virker det uden problemer.

Hvad gør jeg?

Med venlig hilsen

Jakob Bro Nielsen
Aalborg



 
 
Kasper Garnæs (08-12-2003)
Kommentar
Fra : Kasper Garnæs


Dato : 08-12-03 22:27

J. Nielsen <mail@jbro.NOSPAMdk> wrote:
> Jeg vil gerne lave en jpg-fil, hvori der står Konedøv (nevermind
> teksten, det er en _meget_ lang historie .
>
> Til det har jeg slået mig på de imagefunktioner, der ligger i gd.
>
> Altsammen helt fint bortset fra to ting. Den ene er: Jeg kan ikke
> skrive æ,ø,å med funktionen.
>
> Hvad gør jeg?

Det er *kun* et skud i tågen, men jeg kunne godt mistænke GDLibs default
font for ikke at indeholde bogstaverne for æ, ø og å. Prøv at loade en font
som du er sikker på indeholder disse karakterer og se hvad der sker.

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Jakob Bro Nielsen (09-12-2003)
Kommentar
Fra : Jakob Bro Nielsen


Dato : 09-12-03 09:08

"Kasper Garnæs" <demos@mailme.dk> wrote in message news:<br2qb4

> Det er *kun* et skud i tågen, men jeg kunne godt mistænke GDLibs default
> font for ikke at indeholde bogstaverne for æ, ø og å. Prøv at loade en font
> som du er sikker på indeholder disse karakterer og se hvad der sker.

Hej Kasper.

Tak for dit svar. Jeg har osse tænkt på, at det nok er fonten, der
ikke indeholder de rette bogstaver.

Jeg har forgæves søgt på nettet efter en anden font. Er der nogen, der
ligger inde med en font, der kan benyttes til dette?

Med venlig hilsen

Jakob Bro Nielsen
Aalborg

Martin (09-12-2003)
Kommentar
Fra : Martin


Dato : 09-12-03 09:35

Jakob Bro Nielsen wrote:
> Jeg har forgæves søgt på nettet efter en anden font. Er der nogen, der
> ligger inde med en font, der kan benyttes til dette?

Jeg mener du kan bruge ganske almindelige TTF fonte, de kan hentes
gratis mange steder på nettet, eller fra din c:\windows\fonts, forudsat
at du kører windows selvfølgelig.

MVH
Martin


J. Nielsen (09-12-2003)
Kommentar
Fra : J. Nielsen


Dato : 09-12-03 19:44

> Jeg mener du kan bruge ganske almindelige TTF fonte, de kan hentes
> gratis mange steder på nettet, eller fra din c:\windows\fonts, forudsat
> at du kører windows selvfølgelig.

Hej Martin.

Jeg kører Windows, så jeg har forsøgt at benytte verdana.ttf fra Windows'
font-bibliotek.

Min kode ser nu således ud:

/* Image oprettes */
$nametag = imagecreate(100,25);

/* Strengen skrives i billedet */
$bg = imagecolorallocate($nametag, 240,240,240);
$textcolor = imagecolorallocate($nametag, 0, 0, 0);
imagettftext($nametag, 10, 0, 10, 17, $textcolor, $fpath, $name);

Resultatet er imidlertid det samme som før. Jeg kan verificere at fonten
loades, hvis jeg skriver en tekst ($name), der ikke indeholder "kriminelle"
bogstaver.

Jeg har forsøgt at lade $name = "&Oslash;", og det virker heller ikke.

Anyone - hvad gør jeg? Nu er det blevet et princip: Jeg VIL have æ, ø og å
billedet...

Jeg ser frem til at høre fra jer.

Med venlig hilsen

Jakob Bro Nielsen
Aalborg



Peter Brodersen (09-12-2003)
Kommentar
Fra : Peter Brodersen


Dato : 09-12-03 19:55

On Tue, 9 Dec 2003 19:44:24 +0100, "J. Nielsen" <mail@jbro.NOSPAMdk>
wrote:

>Resultatet er imidlertid det samme som før. Jeg kan verificere at fonten
>loades, hvis jeg skriver en tekst ($name), der ikke indeholder "kriminelle"
>bogstaver.

Du siger, at "det ikke virker". Hvad sker der mere præcist? Og kan du
lægge et eksempel online på hvor, det går galt? Evt. bare en kopi af
det billede, der bliver genereret med fejl?

Det kan tænkes at fejlen ligger et andet sted, fx i hvor "æøå"-teksten
kommer fra.

Her virker det fint: http://stock.ter.dk/textverdana.php
Kildetekst, næsten samme som din: http://stock.ter.dk/textverdana.phps

(dog testet under linux)

>Jeg har forsøgt at lade $name = "&Oslash;", og det virker heller ikke.

Det vil i hvert fald ikke virke (forstået på den måde, at den printer
et Ø).

>Jeg ser frem til at høre fra jer.

Jeg prøver lige at teste samme kode under Windows...

--
- Peter Brodersen

Ugens sprogtip: trafik (og ikke traffik)

J. Nielsen (09-12-2003)
Kommentar
Fra : J. Nielsen


Dato : 09-12-03 20:40

Hej Peter (og de andre, der har svaret på dette indlæg)!

Jeg har fundet løsningen på mit problem. Strengen, der indeholder de danske
bogstaver skal igennem funktionen utf8_encode(). Så kommer de danske
bogstaver osse med ud på billedet.

Mit kald til siden, der generer billedet ser nu således ud:

echo "<p><img
src=\"../system/nametag.php?text=".utf8_encode("æøå")."\"></p>\n";

Og vupti! Ud kommer et jpg-billede, der står æøå i!

Hvis der er nogen, der er interesseret i hele koden, så skriv til mig.

Med venlig hilsen

Jakob Bro Nielsen
Aalborg



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408934
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste