square instead of number

PHP programming forum. Ask questions or help people concerning PHP code. Don't understand a function? Need help implementing a class? Don't understand a class? Here is where to ask. Remember to do your homework!

Moderator: General Moderators

Post Reply
thosecars82
Forum Commoner
Posts: 94
Joined: Thu Apr 03, 2008 6:31 am
Location: Arganda, Madrid
Contact:

square instead of number

Post by thosecars82 »

Hello
I do not know why but this code seems to work fine only in my xampp local insallation but not in the remote server. I just see a black square instead of the number 0000000 when I run this code in the remote server through the link http://www.arreglaordenador.com/numberimage.php

and the code in numberimage.php is:

Code: Select all

 
<?php
 $fontDir = $rootPath . "fonts\\";
 $fn = (isset($_GET['fn'])) ? $_GET['fn'] : "ARIAL.ttf";
 $fs = (isset($_GET['fs'])) ? $_GET['fs'] : 10;
 $maxWidth = 80 * $fs;
 
 //$colorArray = array ("red", "green", "blue", "cyan", "magenta", "yellow", "black", "white", "gray");
  $colorArray = array ("black", "black", "black", "black", "black", "black", "black", "black", "black");
 $color = (isset($_GET['color'])) ? $colorArray[$_GET['color']] : $colorArray[rand(0, 8)];
 $txt = (isset($_GET['txt'])) ? $_GET['txt'] : "0000000";
 $coords = imagettfbbox($fs, 0, $fontDir . $fn, $txt);
 $w = abs($coords[4]) + 8;
$h = abs($coords[5]) + 8;
 $img = imagecreatetruecolor($w, $h);
 $red = imagecolorallocate($img, 255,0,0);
 $green = imagecolorallocate($img, 0,255,0);
 $blue = imagecolorallocate($img, 0,0,255);
 $cyan = imagecolorallocate($img, 0,255,255);
 $magenta = imagecolorallocate($img, 255,0,255);
 $yellow = imagecolorallocate($img, 255,255,0);
 $black = imagecolorallocate($img, 0,0,0);
 $white = imagecolorallocate($img, 255,255,255);
 $gray = imagecolorallocate($img, 127,127,127);
 $fill = ($color == "white") ? $black : $white;
 imagefill($img, 0, 0, $fill);
 $position = 4;
 if (isset($_GET['position'])) $position = $_GET['position']; 
 
 imagettftext($img, $fs, 0, 0, $h-$position, $$color, "$fontDir$fn", $txt);
 
 header("content-type: image/jpeg");
 imagejpeg($img, "", 100);
 imagedestroy($img);
 ?>
 
 
Does any of you have any suggestion?
Thanks
User avatar
Apollo
Forum Regular
Posts: 794
Joined: Wed Apr 30, 2008 2:34 am

Re: square instead of number

Post by Apollo »

does ARIAL.ttf actually exist in the specified dir on your remote server?
aravona
Forum Contributor
Posts: 347
Joined: Sat Jun 13, 2009 3:59 pm
Location: England

Re: square instead of number

Post by aravona »

Something is getting its wires crossed. Just to clarify you want to display the text 0000000?

How is your server set up? 000000 is a hexadecimal code for the colour black - hence the black square so maybe its something with your server settings. Do you have the fonts etc you need? You'll get stuck with a standard few otherwise.
thosecars82
Forum Commoner
Posts: 94
Joined: Thu Apr 03, 2008 6:31 am
Location: Arganda, Madrid
Contact:

Re: square instead of number

Post by thosecars82 »

aravona wrote:Something is getting its wires crossed. Just to clarify you want to display the text 0000000?

How is your server set up? 000000 is a hexadecimal code for the colour black - hence the black square so maybe its something with your server settings. Do you have the fonts etc you need? You'll get stuck with a standard few otherwise.
Thanks, the problem was with the rootpath variable that did not include the proper value. Now the number is displayed but with a black background which makes it very difficult to see. However the background is white as I want in the local server. Does any of you have any idea to make it white also remotely?

Code: Select all

 
<?php
 $fontDir = "fonts/";
 $fn = (isset($_GET['fn'])) ? $_GET['fn'] : "arial.ttf";
 $fs = (isset($_GET['fs'])) ? $_GET['fs'] : 10;
 $maxWidth = 80 * $fs;
 
$colorArray = array ("red", "green", "blue", "cyan", "magenta", "yellow", "black", "white", "gray");
 // $colorArray = array ("black", "black", "black", "black", "black", "black", "black", "black", "black");
 $color = (isset($_GET['color'])) ? $colorArray[$_GET['color']] : $colorArray[rand(0, 8)];
 $txt = (isset($_GET['txt'])) ? $_GET['txt'] : "0000000";
 $coords = imagettfbbox($fs, 0, $fontDir . $fn, $txt);
 $w = abs($coords[4]) + 8;
$h = abs($coords[5]) + 8;
 $img = imagecreatetruecolor($w, $h);
 $red = imagecolorallocate($img, 255,0,0);
 $green = imagecolorallocate($img, 0,255,0);
 $blue = imagecolorallocate($img, 0,0,255);
 $cyan = imagecolorallocate($img, 0,255,255);
 $magenta = imagecolorallocate($img, 255,0,255);
 $yellow = imagecolorallocate($img, 255,255,0);
 $black = imagecolorallocate($img, 0,0,0);
 $white = imagecolorallocate($img, 255,255,255);
 $gray = imagecolorallocate($img, 127,127,127);
 $fill = ($color == "white") ? $black : $white;
 imagefill($img, 0, 0, $fill);
 $position = 4;
 if (isset($_GET['position'])) $position = $_GET['position']; 
 
 imagettftext($img, $fs, 0, 0, $h-$position, $$color, "$fontDir$fn", $txt);
 
 header("content-type: image/jpeg");
 imagejpeg($img, "", 100);
 imagedestroy($img);
 ?>
 
Thanks
Post Reply