webForumDet fria alternativet
Logga in / Bli medlem

imagecreate - Fråga 2

PHP

8 svar · 338 visningar · startad av filipbh

Medlem sedan juli 2002405 inlägg
Trådstart#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;
Medlem 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.

Medlem 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?

Medlem 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å ?

Medlem 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.

Medlem 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.

Medlem 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?

Medlem 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.

Medlem 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 :/

394 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
124 ms — deklarationer (db)
128 ms — hämta statistik (db)
135 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)