---
title: "Skapa en gif-bild"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/136200-skapa-en-gif-bild"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "learn"
published: "2005-10-22T21:54:23.000Z"
updated: "2005-10-31T08:40:24.000Z"
replies: 29
views: 1154
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/136200-skapa-en-gif-bild"
---

# Skapa en gif-bild

_Sida 1 av 2._

## #1 — learn, 2005-10-22T21:54Z

Gokväll!

Jag har sökt runt här på wF utan att hitta riktigt vad jag är ute efter...

Vad jag vill ha är ett enkelt php-script som skapar en gif-bild-fil innehållande text.

Exempel: Användaren matar in sitt namn "Anders" och en fil med namnet anders.gif skapas i angiven katalog. Gärna transparent bakgrund.

Någon som kan hjälpa mig..?

Permalänk: https://www.webforum.nu/p/136200

## #2 — Skarre, 2005-10-22T22:04Z

<http://www.hotscripts.com/Detailed/52111.html>

Det var det första jag hittade, men det finns säkert fler.

Permalänk: https://www.webforum.nu/p/1690873

## #3 — learn, 2005-10-22T22:54Z

Men om man vill spara bilden...?

RED:
När användaren matar in sitt namn i ett formulär så ska bilden skapas i en mapp för att senare visas.

Permalänk: https://www.webforum.nu/p/1690887

## #4 — learn, 2005-10-22T23:50Z

Någon som ngt tips/script?? Tack på förhand!

Permalänk: https://www.webforum.nu/p/1690891

## #5 — RogerA, 2005-10-23T07:20Z

Prova ändra raden

```php
imagegif($image);
```

 till

```php
imagegif($image, "$text.gif");
```

Permalänk: https://www.webforum.nu/p/1690907

## #6 — learn, 2005-10-23T10:39Z

Funkar inte... Inget händer. Hur ska jag "anropa" scriptet. Så här ser det ut:

```php
	
$text = $_POST["namn"];
$font = "verdana.ttf";
$getsize = 8;
$size = imagettfbbox($getsize+1, 0, $font, $text);
$image = imagecreatetruecolor(abs($size[2]) + abs($size[0]), abs($size[7]) + abs($size[1]));

if (!isset($_GET["color"])) $gold = imagecolorallocate($image, 206, 20, 20);
		else $gold = imagecolorallocate($image, 177, 177, 177);

$back = ImageColorAllocate($image,255,255,255);
ImageFilledRectangle($image,0,0,302,20,$back);
imagettftext($image, $getsize, 0, 0, $getsize+2, $gold, $font, $text);

header("Content-type: image/gif");
imagegif($image, "$text.gif"); 
imagedestroy($image);
```

 
Hur ska jag använda koden?

Permalänk: https://www.webforum.nu/p/1690968

## #7 — RogerA, 2005-10-23T11:36Z

Här är ett exempel, hoppas det gör det tydligare:

```php
<html>
<body>
<form method="post" action="#">
	<input type ="text" name="namn" value="Din bildtext"/>
	<input type="submit" value="Skapa bild" />
</form>
<?php

if(isset($_POST["namn"])) {

	$text = $_POST["namn"];
	$font = "verdana.ttf";
	$getsize = 8;
	$size = imagettfbbox($getsize+1, 0, $font, $text);
	$image = imagecreatetruecolor(abs($size[2]) + abs($size[0]), abs($size[7]) + abs($size[1]));

	if (!isset($_GET["color"])) $gold = imagecolorallocate($image, 206, 20, 20);
	        else $gold = imagecolorallocate($image, 177, 177, 177);
	
	$back = ImageColorAllocate($image,255,255,255);
	ImageFilledRectangle($image,0,0,302,20,$back);
	imagettftext($image, $getsize, 0, 0, $getsize+2, $gold, $font, $text);

	//header("Content-type: image/gif");
	imagegif($image, "$text.gif");
	imagedestroy($image); 

	print '<img src="'.$_POST["namn"].'" alt="testbild" />';

}

?>
</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1690987

## #8 — learn, 2005-10-23T12:01Z

Hmm, får detta resultat lokalt:

> Fatal error: Call to undefined function: imagettfbbox() in C:\\Documents and Settings\\Daniel Westman\\Mina dokument\\Webbutveckling\\hem-sidan\\txtpic.php on line 15

 

och detta online:

> Warning: imagegif() \[function.imagegif\]: Unable to open 'Test.gif' for writing in /home/web/domains/hej.se/public_html/txtpic.php on line 26
> testbild

Permalänk: https://www.webforum.nu/p/1690991

## #9 — learn, 2005-10-23T12:22Z

Löste sig på servern, det visade sig att jag inte hade 777 på mappen... Men varför fungerar det inte lokalt??

PS. Varför blir det så fruktansvärt dålig kvalitet på bilden...??

Permalänk: https://www.webforum.nu/p/1691000

## #10 — learn, 2005-10-23T14:02Z

En tilläggsfråga, hur gör jag för att få "bg.gif" som bakgrund till texten?

Permalänk: https://www.webforum.nu/p/1693993

## #11 — RogerA, 2005-10-23T19:07Z

Vet ej, tyvärr. Kanske någon annan som kan mer kan hjälpa dig.

Permalänk: https://www.webforum.nu/p/1694117

## #12 — fiddler, 2005-10-24T07:18Z

> **learn skrev:**
>
> En tilläggsfråga, hur gör jag för att få "bg.gif" som bakgrund till texten?

Ta en titt på imagecreatefromgif (<http://se2.php.net/manual/sv/function.imagecreatefromgif.php>) om det kan vara något.

Permalänk: https://www.webforum.nu/p/1694263

## #13 — fiddler, 2005-10-24T07:26Z

Hittade just detta:

```php
imageSetTile($image,$imageBack);
imagefill($image,0,0,IMG_COLOR_TILED);
```

Bilden $image fylls med bilden $imageBack.

Har inte provat själv...

Permalänk: https://www.webforum.nu/p/1694265

## #14 — learn, 2005-10-24T08:38Z

Ok, vart och hur ska jag stoppa in detta i koden ovan?

Permalänk: https://www.webforum.nu/p/1694288

## #15 — fiddler, 2005-10-24T08:50Z

> **learn skrev:**
>
> Ok, vart och hur ska jag stoppa in detta i koden ovan?

Innan du skriver ut texten på bilden.

Permalänk: https://www.webforum.nu/p/1694292

## #16 — learn, 2005-10-24T10:54Z

Jag känner mig lite bakom flötet just nu, kan du skriva ett litet exempel med hela koden som RogerA bifogade ovan...? Tack!

Permalänk: https://www.webforum.nu/p/1694316

## #17 — fiddler, 2005-10-24T11:21Z

Som sagt har jag inte testat detta. Berätta hur det går.
Se till att sätta rätt sökväg till "bg.gif"

```php
<html> 
<body> 
<form method="post" action="#"> 
    <input type ="text" name="namn" value="Din bildtext"/> 
    <input type="submit" value="Skapa bild" /> 
</form> 
<?php 

if(isset($_POST["namn"])) { 

    $text = $_POST["namn"]; 
    $imageback = "bg.gif";
    $font = "verdana.ttf"; 
    $getsize = 8; 
    $size = imagettfbbox($getsize+1, 0, $font, $text); 
    $image = imagecreatetruecolor(abs($size[2]) + abs($size[0]), abs($size[7]) + abs($size[1])); 

    if (!isset($_GET["color"])) $gold = imagecolorallocate($image, 206, 20, 20); 
            else $gold = imagecolorallocate($image, 177, 177, 177); 
     
    //$back = ImageColorAllocate($image,255,255,255); 
    //ImageFilledRectangle($image,0,0,302,20,$back); 
    $tile = imagecreatefromgif($imageback);
    imageSetTile($image,$tile); 
    imagefill($image,0,0,IMG_COLOR_TILED);
    imagettftext($image, $getsize, 0, 0, $getsize+2, $gold, $font, $text); 

    //header("Content-type: image/gif"); 
    imagegif($image, "$text.gif"); 
    imagedestroy($image); 

    print '<img src="'.$_POST["namn"].'" alt="testbild" />'; 

} 

?> 
</body> 
</html>
```

Permalänk: https://www.webforum.nu/p/1694332

## #18 — learn, 2005-10-24T11:27Z

Hmm..

> Warning: imagesettile(): supplied argument is not a valid Image resource in /home/web/domains/hej.se/public_html/test/txtpic.php on line 24

 

Rad 24: imageSetTile($image,$imageback);

Permalänk: https://www.webforum.nu/p/1694336

## #19 — fiddler, 2005-10-24T11:36Z

Ändrade i koden lite. Försök igen.

Permalänk: https://www.webforum.nu/p/1694342

## #20 — learn, 2005-10-24T11:48Z

Det funkar fint! Men när jag väljer font-storleken 20 så hamnar delar av texten utanför... Kan man sätta en fast höjd på bilden kanske? Sen så vill jag ha en maxbredd, bilden får inte bli bredare än 300px. 

Tack för din hjälp!   :bire

Permalänk: https://www.webforum.nu/p/1694353

---

Tråden på webben: https://www.webforum.nu/amne/php/136200-skapa-en-gif-bild  
Nästa sida: https://www.webforum.nu/amne/php/136200-skapa-en-gif-bild/page2.md
