webForumDet fria alternativet

imagecreate - Fråga 2

8 svar · 338 visningar · startad av filipbh

filipbhMedlem sedan juli 2002405 inlägg
#1

Varför fungerar inte detta? Har försökt leta på php.net men hittar inget svar... Vill att "huvudbilden" visas först och sen "textbilden" efter. "Textbilden" ska vara lika bred som "huvudbilden"...

header("Content-type: image/png");
$size = getimagesize("fil.jpg");
$im = @imagecreate($size[0], 15)
  or die("Cannot Initialize new GD image stream");

echo "<img src=\"fil.jpg\">";

$wsize = $size[0];
$hsize = $size[1];

$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 200, 123, 91);
imagestring($im, 5, 1, 1,  "Bildkommentar", $text_color);
imagepng($im);
imagedestroy($im);

echo "<br>".$wsize." x ".$hsize;
MatteMedlem sedan aug. 20002 975 inlägg
#2

Vad är det som inte fungerar? Skapas inte bilden?

Du lägger koden i en egen fil, utan några echo.
Sedan kallar du på den i en annan fil med img-taggen:

<img src="fil.jpg"><br>
<img src="textbilden.php">

Vad du måste tänka på i textbilden.php är att skriptet ska generera en bild. Du får därför inte ha någon output innan som skickar iväg till webbläsaren att det är text/html den ska vänta sig. En tomrad eller mellanslag före PHP-taggen räcker för att ge output, och därmed sabba din bild.

En annan sak att tänka på är att om du har samma namn på "textbilden" kommer den sannolikt att cachas, och samma "textbild" kommer att visas hela tiden.
Då får du antingen se till att sidan inte cachas, eller skicka ut olika namn från skriptet.

filipbhMedlem sedan juli 2002405 inlägg
#3

Det fungerade mycket bättre när jag använde:

<img src="fil.jpg"><br>
<img src="textbilden.php">

Så tack...

En fråga jag har bara är om man inte kan använda variabler för storleken?

MatteMedlem sedan aug. 20002 975 inlägg
#4

Visst kan du använda variabler för storleken.

Är det något speciellt du tänker på ?

filipbhMedlem sedan juli 2002405 inlägg
#5

Om jag lägger in

<img src="fil.jpg"><br>
<img src="textbilden.php">

i bild.php så vill jag att i bild.php ska det köras en getimagesize(). De värderna ska användas i textbilden.php.

MatteMedlem sedan aug. 20002 975 inlägg
#6

Något sådant här du funderar på ?

$text = 'Min text';
$filename = 'fil.jpg';
$size = getimagesize($filename);

echo '
  <img src=" . $filename . "><br>
  <img src="textbilden.php?width=' . $size[0] . '&text=' . $text . '">
';

Sedan använder du $_GET['width'] och $_GET['text'] i textbilden.php.

filipbhMedlem sedan juli 2002405 inlägg
#7

Äntligen fick jag det att fungera =) Tack...

Två frågor bara; hur kan man få en fil att skrivas ut med en img-tagg? Kan man få transparent bakgrund?

MatteMedlem sedan aug. 20002 975 inlägg
#8

Vad det gäller transparens, ta en titt på imagecolorallocatealpha.

Sen förstår jag inte ditt bekymmer med att få en img-tagg att skrivas ut.

Du kan ha filnamnen i databas, eller samlat i textfil och loopa ut.

Du kan läsa in katalogen och loopa ut filerna.

Du kanske ska använda din kod endast för att lägga till textremsan.

filipbhMedlem sedan juli 2002405 inlägg
#9

Tänkte mest på att img-taggen tar fram bilder men i detta fall skriver man en fil istället.. Hade inget problem med det.

Ska kolla om imagecolorallocatealpha fungerar.. Varken imageloadfont, imagettfbbox eller imagettftext vill fungera :/

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