webForumDet fria alternativet

Generera bild

7 svar · 432 visningar · startad av Jesper2

Jesper2Medlem sedan dec. 200475 inlägg
#1

Hejhej. Jag behöver hjälp med att generera en liten bild på ca 50*20px med hjälp av PHP. Själva bakgrunden ska vara enfärgad medan texten ska ändras, det är så att jag vill använda en font som inte alla har. Det ska inte bara vara EN upplaga av bilden, utan många olika, helst ska det vara lätt att byta text på bilden också. Jag har inte en aning om hur detta ska gå till, men jag har ju sett att det är möjligt.

Ex:
$text = "Medlem"

generar en bild på 50*20px med texten "Medlem" på.

Tack på förhand!

PeddaMedlem sedan juni 20006 032 inlägg
#2

Här har du ett exempel, du får ändra storleken på bilden o lite sånt.
Spara filen som ttf.php

<?php
// Sätt content-type
header("Content-type: image/png");

// Skapa bilden
$im = imagecreate(350, 25);

// Skapa några färger
$white = imagecolorallocate($im, 255, 255, 255);  // bakgrunden
$grey = imagecolorallocate($im, 128, 128, 128);  // skuggan
$orange = imagecolorallocate($im, 250, 184, 57);  // texten

// Din text
$text = 'Medlem';
// Fonten som ska användas (lägg fonten i samma mapp)
$font = 'Broadw.ttf';

// Lite skugga på texten
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Lägg till texten
imagettftext($im, 20, 0, 10, 20, $orange, $font, $text);

// Använd imagepng() resultet blir bättre text än med imagejpeg()
imagepng($im);
imagedestroy($im);

// Visa bilden med följande kod
// <img src="ttf.php" alt="">
?>
Jesper2Medlem sedan dec. 200475 inlägg
#3

Oj! Det var lättare än jag trodde! Tack så jättemycket för hjälpen! Men jag såg att filtypen blir .png, då borde det ju gå att använda sig av trasparent bakgrund? Hur går det till?

Pedda skrev:

Här har du ett exempel, du får ändra storleken på bilden o lite sånt.
Spara filen som ttf.php

<?php
// Sätt content-type
header("Content-type: image/png");

// Skapa bilden
$im = imagecreate(350, 25);

// Skapa några färger
$white = imagecolorallocate($im, 255, 255, 255);  // bakgrunden
$grey = imagecolorallocate($im, 128, 128, 128);  // skuggan
$orange = imagecolorallocate($im, 250, 184, 57);  // texten

// Din text
$text = 'Medlem';
// Fonten som ska användas (lägg fonten i samma mapp)
$font = 'Broadw.ttf';

// Lite skugga på texten
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Lägg till texten
imagettftext($im, 20, 0, 10, 20, $orange, $font, $text);

// Använd imagepng() resultet blir bättre text än med imagejpeg()
imagepng($im);
imagedestroy($im);

// Visa bilden med följande kod
// <img src="ttf.php" alt="">
?>
oskobMedlem sedan maj 20021 558 inlägg
#4

Försökte använda mig av den där funktionen men det ville inte gå.
Jag gjorde så att jag sparade själva bildscriptet i en fil och lade sedan in <img src="ttf.php" alt=""> i en ny fil men det fungerade inte. När jag testade att öppna själva bildscriptet i läsaren så sa den att:
Bilden http://localhost/omslagsgenerator/ttf.php kan inte visas, då den innehåller fel.

Skulle man kunna få lite bättre felmeddelande på något sätt?

Misstänker att det är hos mig felet ligger. Testade med script från php.net och de fungerade inte heller. Måste man ha en modul eller något sådant?

fiddlerMedlem sedan juli 20023 617 inlägg
#5

This function requires both the GD library and the FreeType library.

Kan det vara problemet tro?

oskobMedlem sedan maj 20021 558 inlägg
#6

Antagligen för jag har ingen aning om vad det är :)
Går det att installera?

R:

Jag gittade GD nu men jag fattar inte riktigt hur man får in det i PHP. "Type /configure for fast installation" står det. Var skriver man det? Går inte i cmd :(

PeddaMedlem sedan juni 20006 032 inlägg
#7

Kolla först om du har GD och Freetype installerat.

Gör en fil med koden

<?php
phpinfo();
?>

och kolla så det inte redan är installerat. Det är webbhotellet som kan installera, ingen användare kan göra det själv.

oskobMedlem sedan maj 20021 558 inlägg
#8

A-ha!
Sökte lite och hittade att man bara skulle aktivera det i php.ini genom att ta bort semicolon framför extension=php_gd2.dll .

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)