---
title: "Problem med imagettfbbox"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/178379-problem-med-imagettfbbox"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Guldstrand"
published: "2009-05-03T06:10:13.000Z"
updated: "2009-05-05T15:05:23.000Z"
replies: 10
views: 772
page: 1
pages: 1
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/178379-problem-med-imagettfbbox"
---

# Problem med imagettfbbox

## #1 — Guldstrand, 2009-05-03T06:10Z

Jag försöker använda följande kod till ett formulär, men captcha-bilden visas inte. :(

Får felet:

> Error in imagettfbbox function

(Servern har php5 + GD2.)

```php
<?php
session_start();

class CaptchaSecurityImages { 

	var $font = 'monofont.ttf';

	function generateCode($characters) {
		/* list all possible characters, similar looking characters and vowels have been removed */
		$possible = '23456789bcdfghjkmnpqrstvwxyz';
		$code = '';
		$i = 0;
		while ($i < $characters) { 
			$code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
			$i++;
		}
		return $code;
	}

	function CaptchaSecurityImages($width='120',$height='40',$characters='6') {
		$code = $this->generateCode($characters);
		/* font size will be 75% of the image height */
		$font_size = $height * 0.75;
		$image = @imagecreate($width, $height) or die('Cannot initialize new GD image stream');
		/* set the colours */
		$background_color = imagecolorallocate($image, 255, 255, 255);
		$text_color = imagecolorallocate($image, 20, 40, 100);
		$noise_color = imagecolorallocate($image, 100, 120, 180);
		/* generate random dots in background */
		for( $i=0; $i<($width*$height)/3; $i++ ) {
			imagefilledellipse($image, mt_rand(0,$width), mt_rand(0,$height), 1, 1, $noise_color);
		}
		/* generate random lines in background */
		for( $i=0; $i<($width*$height)/150; $i++ ) {
			imageline($image, mt_rand(0,$width), mt_rand(0,$height), mt_rand(0,$width), mt_rand(0,$height), $noise_color);
		}
		/* create textbox and add text */
		$textbox = imagettfbbox($font_size, 0, $this->font, $code) or die('Error in imagettfbbox function');
		$x = ($width - $textbox[4])/2;
		$y = ($height - $textbox[5])/2;
		imagettftext($image, $font_size, 0, $x, $y, $text_color, $this->font , $code) or die('Error in imagettftext function');
		/* output captcha image to browser */
		header('Content-Type: image/png');
		imagepng($image);
		imagedestroy($image);
		$_SESSION['security_code'] = $code;
	}

}

$width = isset($_GET['width']) ? $_GET['width'] : '120';
$height = isset($_GET['height']) ? $_GET['height'] : '40';
$characters = isset($_GET['characters']) && $_GET['characters'] > 1 ? $_GET['characters'] : '6';

$captcha = new CaptchaSecurityImages($width,$height,$characters);

?>
```

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

## #2 — Guldstrand, 2009-05-03T13:01Z

\*bump\*

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

## #3 — Pedda, 2009-05-03T14:11Z

Har du testat att ta bort "or die()" och kollat om du får ett felmeddelande som säger vad som är fel?
Testa även att ange fonten på olika sätt, t.ex './monofont.ttf' då olika GD versioner vill ha det på olika sätt.

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

## #4 — Guldstrand, 2009-05-03T16:57Z

> **[Pedda skrev:](https://www.webforum.nu/p/1466637)**
>
> Har du testat att ta bort "or die()" och kollat om du får ett felmeddelande som säger vad som är fel?
> Testa även att ange fonten på olika sätt, t.ex './monofont.ttf' då olika GD versioner vill ha det på olika sätt.

Hmm...
När jag tog bort "or die()", visades bakgrundsbilden, men fortfarande ingen text.  :x (see screen)
Ja, jag har testat att ange "./" framför fonten (även hela sökvägen), men inget verkar hjälpa.

Bilagor:

- [captcha_screen.jpg](https://www.webforum.nu/a/20252.jpg)

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

## #5 — Guldstrand, 2009-05-03T19:10Z

\*bumpellibump\*

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

## #6 — Pedda, 2009-05-03T20:34Z

Är du säker på att fonten heter monofont.ttf?
Hittar inget annat fel än att den inte hittar fonten.

/red
Högerklicka på fonten och ta egenskaper. Då ser man det verkliga namnet.

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

## #7 — Guldstrand, 2009-05-03T20:54Z

> **[Pedda skrev:](https://www.webforum.nu/p/1466677)**
>
> Är du säker på att fonten heter monofont.ttf?
> Hittar inget annat fel än att den inte hittar fonten.
> 
> /red
> Högerklicka på fonten och ta egenskaper. Då ser man det verkliga namnet.

Ja, fonten heter "monofont.ttf", och ligger i samma mapp som filen/koden ovan.

BTW.. ska fonten laddas upp som text eller binärt? (Spelar det någon roll?)
Några speciella rättigheter på font-filen?

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

## #8 — Guldstrand, 2009-05-03T21:42Z

Hmm..
Hittade detta i error-loggen:

> PHP Warning:  imagettfbbox() \[\<a href='function.imagettfbbox'\>function.imagettfbbox\</a\>\]: Could not find/open font in /\*\*\*\*\*/\*\*\*\*\*/users/CaptchaImages.php on line 60, referer: <http://doman.se/testar/register/register.html>

\*fattar ingenting\*  :x

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

## #9 — Guldstrand, 2009-05-04T06:57Z

Ehum.. \*harkel\* *BUMP* \*host\*

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

## #10 — fiddler, 2009-05-04T08:04Z

Testa exemplet på <http://se.php.net/manual/en/function.imageftbbox.php>

Om du får problem med det är det något annat fel än din kod.
Är du säker på att din font-fil inte blivit skadad på något sätt? Ladda upp en ny och testa.

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

## #11 — Guldstrand, 2009-05-05T15:05Z

> **[fiddler skrev:](https://www.webforum.nu/p/1466711)**
>
> Testa exemplet på <http://se.php.net/manual/en/function.imageftbbox.php>
>
> Om du får problem med det är det något annat fel än din kod.
> Är du säker på att din font-fil inte blivit skadad på något sätt? Ladda upp en ny och testa.

Testade exemplet, men kan inte se någon text där heller.
Har testat med 2 olika fonts (arial och verdana) som jag laddade upp.

BTW.. ska fonten laddas upp som text eller binärt? (Spelar det någon roll?)
Några speciella rättigheter på font-filen?

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

---

Tråden på webben: https://www.webforum.nu/amne/php/178379-problem-med-imagettfbbox
