cactuscake Posted October 21, 2009 Share Posted October 21, 2009 Me again! Received some useful help from these forums in the last couple of days so I'm back with another question. The snippet of code below pieces together an image using an uploaded image file, a bunch of user-defined form field values, and some server side image resources. It works, but I've been wanting to change the font from the default (rather ugly) to something like arial or courier, and maybe at a later stage give the user the option to choose the font from a short list. Not asking someone to do it for me, but if you've done this sort of thing before perhaps point me in the direction of any resources that helped? Thanks. <?php $imagepath = $_FILES['fileatt']['tmp_name']; $now = time(); // Load image $image = open_image($imagepath); if ($image == false) { die ('<strong>Invalid type/size or no image file specified. Please go back and try again with an image file under 2Mb.</strong>'); } // Get original width and height $width = imagesx($image); $height = imagesy($image); if ($width > $height) { $new_width = floatval($_POST['new_width']); $new_height = $height * ($new_width/$width); } // New height? Calculate new width else { $new_height = floatval($_POST['new_height']); $new_width = $width * ($new_height/$height); } // Resample $image_resized = imagecreatetruecolor($new_width + 358, $new_height + ; $bgColor = imagecolorallocate($image_resized, 255,255,255); $trans = imagecolorallocatealpha ($image_resized, 255, 255, 255, 127); imagefill($image_resized, 0,0 , $trans); imagecopyresampled($image_resized, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); // Merge with bottom shadow $shadowbot = imagecreatefromgif ( "card_graphics/shadowbot.gif" ); imagecopy($image_resized, $shadowbot, 0, $new_height, 0, 0, $new_width, ; // Merge with side shadow $shadowrit = imagecreatefromgif ( "card_graphics/shadowrit.gif" ); imagecopy($image_resized, $shadowrit, $new_width + 350, 0, 0, 0, 8, $new_height); // Merge with corner shadow $shadowcor = imagecreatefromgif ( "card_graphics/shadowcor.gif" ); imagecopy($image_resized, $shadowcor, $new_width, $new_height, 0, 0, 358, ; // Merge with postmark $postmark = imagecreatefromgif ( "card_graphics/postmark.gif" ); imagecopy($image_resized, $postmark, $new_width, 0, 0, 0, 350, 75); // Merge with message $string = stripslashes($_POST['text']); $font = 5; $line_height = ImageFontheight($font) + 5; $padding = (is_numeric($padding)) ? $padding : 0; $text = wordwrap($string, ((315 - (1.5 * $padding))/ImageFontWidth($font))); $lines = explode("\n", $text); imagefill($image_resized, 0, 0, $trans); $i = 90; foreach($lines as $line){ imagestring($image_resized, $font, ($new_width +15), $i, trim($line), $colour); $i += $line_height; } $targetpath = "sentcards/". $now . basename( $_FILES['fileatt']['name']); imagejpeg ($image_resized, $targetpath, 100); ?> Quote Link to comment https://forums.phpfreaks.com/topic/178490-using-different-fonts-in-php-generated-images/ Share on other sites More sharing options...
MadTechie Posted October 21, 2009 Share Posted October 21, 2009 see imagettftext Quote Link to comment https://forums.phpfreaks.com/topic/178490-using-different-fonts-in-php-generated-images/#findComment-941267 Share on other sites More sharing options...
cactuscake Posted October 21, 2009 Author Share Posted October 21, 2009 Ah, now I remember why I couldn't sort this out before - I don't think the required GD stuff is enabled on my server (php config below). Are there any workarounds for this? './configure' '--enable-memory-limit' '--disable-debug' '--with-regex=php' '--disable-rpath' '--disable-static' '--with-pic' '--with-layout=GNU' '--with-pear=/usr/share/php' '--enable-calendar' '--enable-sysvsem' '--enable-sysvshm' '--enable-sysvmsg' '--enable-track-vars' '--enable-trans-sid' '--enable-bcmath' '--with-bz2' '--enable-ctype' '--with-db4' '--with-iconv' '--enable-exif' '--enable-filepro' '--enable-ftp' '--with-gettext' '--enable-mbstring' '--with-pcre-regex=/usr' '--enable-shmop' '--enable-sockets' '--enable-wddx' '--disable-xml' '--with-expat-dir=/usr' '--with-xmlrpc' '--enable-yp' '--enable-dio' '--with-zlib' '--without-pgsql' '--with-kerberos=/usr' '--with-openssl=/usr' '--with-zip=/usr' '--enable-dbx' '--with-mime-magic=/usr/share/misc/file/magic.mime' '--with-exec-dir=/usr/lib/php4/libexec' '--prefix=/usr' '--with-apxs2=/usr/bin/apxs2' '--with-config-file-path=/etc/php4/apache2' '--with-jpeg-dir=/usr/lib' '--with-gd' '--with-curl' '--with-mysql' Quote Link to comment https://forums.phpfreaks.com/topic/178490-using-different-fonts-in-php-generated-images/#findComment-941337 Share on other sites More sharing options...
MadTechie Posted October 21, 2009 Share Posted October 21, 2009 --with-gd' seams okay what error are you getting ? Quote Link to comment https://forums.phpfreaks.com/topic/178490-using-different-fonts-in-php-generated-images/#findComment-941339 Share on other sites More sharing options...
cactuscake Posted October 21, 2009 Author Share Posted October 21, 2009 I get this: Fatal error: Call to undefined function imagettftext() in /www/110mb.com/j/o/e/m/a/l/p/a/joemalpass/htdocs/fonttest.php on line 22 (using the following test script) <?php // Set the content-type header('Content-type: image/png'); // Create the image $im = imagecreatetruecolor(400, 30); // Create some colors $white = imagecolorallocate($im, 255, 255, 255); $grey = imagecolorallocate($im, 128, 128, 128); $black = imagecolorallocate($im, 0, 0, 0); imagefilledrectangle($im, 0, 0, 399, 29, $white); // The text to draw $text = 'Testing...'; // Replace path by your own font path $font = 'arial.ttf'; // Add some shadow to the text imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); // Add the text imagettftext($im, 20, 0, 10, 20, $black, $font, $text); // Using imagepng() results in clearer text compared with imagejpeg() imagepng($im); imagedestroy($im); ?> Other sources suggest I need other GD thingies enabled, but I don't have control over the configuration so I can't enable them. Quote Link to comment https://forums.phpfreaks.com/topic/178490-using-different-fonts-in-php-generated-images/#findComment-941422 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.