Why won't my code work in Ubuntu Server 11.10? Is it because of gd library?
- by Derrick
I get this error when running the following code:
No such file found at "widgets/104-text.png"
I know that the code works because it works on my other non-ubuntu server. I do not know if it is gd library or what. I tried both the bundled version and the non-bundled and both do not make this code work.
$con = mysql_connect("localhost","user","abc123");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("satabase_name", $con);
$productid2 = $this->product->id;
$thename = mysql_query("SELECT * FROM pshop_product_lang WHERE id_product = '$productid2' LIMIT 1");
$thename2 = mysql_fetch_array($thename);
$string2 = $thename2['name'];
$string = (strlen($string2) > 25) ? substr($string2, 0, 25) . '...' : $string2;
$font = 4;
$width = imagefontwidth($font) * strlen($string);
$height = imagefontheight($font);
$image = imagecreatetruecolor ($width,$height);
$white = imagecolorallocate ($image,255,255,255);
$black = imagecolorallocate ($image,0,0,0);
imagefill($image,0,0,$white);
imagestring($image,$font,0,0,$string, $black);
imagepng($image, 'widgets/' . $productid2 . '-text.png');
$getimg110 = mysql_query("SELECT * FROM pshop_image WHERE id_product = '$productid2'");
$gotimg110 = mysql_fetch_array($getimg110);
$slash110 = addcslashes($gotimg110[id_image], '\0..\999999999999999999999');
$str110 = str_replace('\\', '/', $slash110);
$newimg110 = '<img src="img/p' . $str110 . '/' . $gotimg110[id_image] . '-large_default.jpg" />';
include("conf.inc.php");
include('ImageWorkshop.php');
// Initialization of layer you need
$pinguLayer = new ImageWorkshop(array(
'imageFromPath' => 'widgets/background.png',
));
$pinguLayer2 = new ImageWorkshop(array(
'imageFromPath' => 'img/p' . $str110 . '/' . $gotimg110[id_image] . '-large_default.jpg',
));
$pinguLayer3 = new ImageWorkshop(array(
'imageFromPath' => 'widgets/' . $productid2 . '-text.png',
));
// resize pingu layer
$thumbWidth2 = 150; // px
$thumbHeight2 = 150;
$thumbWidth = 400; // px
$thumbHeight = 200;
$pinguLayer2->resizeInPixel($thumbWidth2, $thumbHeight2);
$pinguLayer->resizeInPixel($thumbWidth, $thumbHeight);
// Add 2 layers on pingu layer
$pinguLayer->addLayerOnTop($pinguLayer2, null, null, 'LM');
$pinguLayer->addLayerOnTop($pinguLayer3, 70, 25, 'MM');
// Saving the result in a folder
$pinguLayer->save("widgets/", $productid2 . ".gif", true, null, 95);
The file path is correct, however this part of the code is not creating the image as it is supposed to:
$thename2 = mysql_fetch_array($thename);
$string2 = $thename2['name'];
$string = (strlen($string2) > 25) ? substr($string2, 0, 25) . '...' : $string2;
$font = 4;
$width = imagefontwidth($font) * strlen($string);
$height = imagefontheight($font);
$image = imagecreatetruecolor ($width,$height);
$white = imagecolorallocate ($image,255,255,255);
$black = imagecolorallocate ($image,0,0,0);
imagefill($image,0,0,$white);
imagestring($image,$font,0,0,$string, $black);
imagepng($image, 'widgets/' . $productid2 . '-text.png');