Avatar billede hkb-x Nybegynder
07. november 2005 - 10:11 Der er 10 kommentarer og
1 løsning

text på billede

hbordan kan jeg via php få text på et billede?
Avatar billede wuggawugga Nybegynder
07. november 2005 - 10:12 #1
Du skal bruge GD funktionerne i php. Eksempel 1 i manualen viser hvordan du gør:

http://dk2.php.net/manual/en/ref.image.php
Avatar billede hkb-x Nybegynder
07. november 2005 - 10:13 #2
har jeg prøvet... men de fleste kræver FreeType 2 hvilket ikke er på min server...
Avatar billede hkb-x Nybegynder
07. november 2005 - 10:13 #3
er der ikke en funktion hvor man IKKe skal loade en font...
Avatar billede wuggawugga Nybegynder
07. november 2005 - 10:18 #4
Manualen siger at den er i stand til at loade en bitmap font: http://dk2.php.net/manual/en/function.imageloadfont.php

Det burde bypasse freetype. Se kommentarerne på sitet for links til at generere fonte :)
...Det skulle egentligt ikke undre mig hvis denne metode giver bedre performance end truetype fonte.
Sig til hvis du skal bruge hjælp
Avatar billede hkb-x Nybegynder
07. november 2005 - 10:22 #5
hjælp?... jo tak... hver eneste gang jeg rør noget med fonte på billeder får jeg afvide at billedet indeholder fejl....

jeg skal have en kort text på et billede...

billednavnet er procent.png ... hvordan gør jeg det... (lav et eksempel så jag kan se hvordan man gør)
Avatar billede Slettet bruger
07. november 2005 - 10:33 #6
Jeg har i sin tid lavet en lille funktion som klarede det, den bruger vist kun standard fonte (som ikke bliver ret pænt).

Du skal nok rette den en lille smule til så den passer til dine krav, navnligt PNG support.

function writeText($img) {
global $archive_dir, $filename;
    // create a 100*30 image
    $image = imagecreate(100, 30);
    $im = imagecreatefromjpeg($img);
   
    // black shadow and white text
    $bg = imagecolorallocate($im, 0, 0, 0);
    $textcolor = imagecolorallocate($im, 255, 255, 255);
   
    list($width, $height) = getimagesize($img);
   
    $string = "billedtekst";
   
    // write the string at the bottom right
    imagestring($im, 3, ($width-70), ($height-15), $string, $bg);
    imagestring($im, 3, ($width-71), ($height-16), $string, $textcolor);

    imagejpeg($im,$archive_dir."/".$filename);
}

.. den kræver du har sat et dir i $archive_dir og et filnavn den skal gemme til i $filname;

Funktionsargumentet skal være en billedfil.

--
pacroon
Avatar billede wuggawugga Nybegynder
07. november 2005 - 10:34 #7
Billedet kommer til at indeholde fejl, hvis der kommer andet med i outputtet. Det sker ofte at php skriver en fejlbesked eller noget, som kommer til at gøre billedet ugyldigt.
En nem løsning er, at bruge output buffering til at sikre at der ikke kommer andet med:

<?php

ob_start();  // Start output buffering

...

ob_end_clean();  // Smid output bufferent ud

imagepng(...);

?>
Avatar billede hkb-x Nybegynder
07. november 2005 - 11:24 #8
@pacroon
kool... men hvordan skifter man linie?
Avatar billede Slettet bruger
07. november 2005 - 12:27 #9
Jeg ved ikke om "\n" skifter linje, ellers skal du bare sætte mere tekst nogle pixels længere nede :)
Avatar billede hkb-x Nybegynder
07. november 2005 - 12:56 #10
tak... skriv svar for point........
Avatar billede Slettet bruger
07. november 2005 - 12:58 #11
Tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester