CocaCola Posted May 5, 2013 Share Posted May 5, 2013 Hi guys, As you can tell I'm fresh and new here but I'm trying to learn PHP to do a few things that i need so i would truely appreciate any help or information and advice that i receive. Basically what I'm trying to do is have two pages First page consists of 5 text input boxes that have the fields. Age Name Telephone Skype Address Email once these were filled out and a user hit Submit they would be generated onto a image for them to download. I'm having a few problems and searched the forum and did come across a thread that kind of explained to similar what i was trying to do but there wasn't much of a positive outcome or fix. These input boxes need to be located at certain points of the image and not just anywhere. The first page where somebody would imput there data is : <body> <form name="code_input" enctype="application/x-www-form-urlencoded" method="GET" action="getcard.php"> Age: <input class="text" type="text" size="24" name="age" value="" /> <br> Name: <input class="text" type="text" size="24" name="name" value="" /> <br> Telephone: <input class="text" type="text" size="24" name="telephone" value="" /> <br> Skype: <input class="text" type="text" size="24" name="skype" value="" /> <br> Address: <input class="text" type="text" size="24" name="address" value="" /> <br> Email: <input class="text" type="text" size="24" name="email" value="" /> <br> <input type="submit" name="submit" value="submit"> </form> </body> </html> But i'm really not sure how i go about working 'getcard.php' page on the thread i found in the search this was something somebody had posted to generate text from a input page to a image. <?php // Load the stamp and the photo to apply the watermark to $im = imagecreatefrompng('image.png'); // Set the content-type header('Content-type: image/png'); header("Content-Description: File Transfer"); header("Content-Disposition: attachment; filename=coupon.png"); header("Content-Transfer-Encoding: binary"); $coupon_code = "empty code"; if(isSet($_GET['coupon_code'])) { $coupon_code = $_GET['coupon_code']; } // Replace path by your own font path $font = 'arial.ttf'; $black = ImageColorAllocate ($im, 0, 0, 0); $grey = ImageColorAllocate ($im, 128, 128, 128); // Add some shadow to the text imagettftext($im, 20, 0, 647, 351, $grey, $font, $coupon_code); // Add the text imagettftext($im, 20, 0, 646, 350, $black, $font, $coupon_code); // Using imagepng() results in clearer text compared with imagejpeg() imagepng($im); ?> As i'm new I'm honestly not sure which direction to go now, I don't just want to copy and paste i would prefer to learn how but struggling to find any real helpful information in regarding what i require and how to do it. Any advice/help/examples would truely be appreciated. thanks alot Quote Link to comment https://forums.phpfreaks.com/topic/277659-text-to-image-submission-questions/ Share on other sites More sharing options...
Solution DavidAM Posted May 5, 2013 Solution Share Posted May 5, 2013 // Add some shadow to the text imagettftext($im, 20, 0, 647, 351, $grey, $font, $coupon_code); // Add the text imagettftext($im, 20, 0, 646, 350, $black, $font, $coupon_code); These two lines put text on the image. The first one, according to the comment, is adding shadow text behind the actaul text. Have a look at imagettftext in the PHP manual for an explantaion of the parameters: image resource, position and size, color, font, text. Quote Link to comment https://forums.phpfreaks.com/topic/277659-text-to-image-submission-questions/#findComment-1428386 Share on other sites More sharing options...
CocaCola Posted May 5, 2013 Author Share Posted May 5, 2013 (edited) Hi DavidAM, Thanks for your post apprecaite it. I've been reading on there and maybe i'm not understanding correctly but still seem to be having trouble. I'm using this <?php // load the image from the file specified: $im = imagecreatefrompng("warranty.png"); // if there's an error, stop processing the page: if(!$im) { die(""); } // define some colours to use with the image $black = imagecolorallocate($im, 80, 77, 77); // get the width and the height of the image $width = imagesx($im); $height = imagesy($im); // draw a black rectangle across the bottom, say, 20 pixels of the image: //imagefilledrectangle($im, 0, ($height-20) , $width, $height, $black); // now we want to write in the centre of the rectangle: $font_size = 18; $text = $_GET['text']; // store the text we're going to write in $text putenv('GDFONTPATH=' . realpath('cour.ttf')); // Name the font to be used (note the lack of the .ttf extension) $font = 'cour'; // calculate the left position of the text: $leftTextPos = ( $width - imagefontwidth($font)*strlen($text) )/2; // finally, write the string: imagestring($im,$font,$leftTextPos-210, $height-295,$text,$black); // output the image // tell the browser what we're sending it Header('Content-type: image/png'); // output the image as a png imagepng($im); // tidy up imagedestroy($im); ?> But can't seem to be able to change the font face on the finished output.png Any help Edited May 5, 2013 by CocaCola Quote Link to comment https://forums.phpfreaks.com/topic/277659-text-to-image-submission-questions/#findComment-1428410 Share on other sites More sharing options...
DavidAM Posted May 6, 2013 Share Posted May 6, 2013 putenv('GDFONTPATH=' . realpath('cour.ttf')); Usually when an environment variable has PATH in the name, it contains ONLY the path (directory) not a full filename. Maybe try putenv('GDFONTPATH=' . dirname(realpath('cour.ttf'))); Quote Link to comment https://forums.phpfreaks.com/topic/277659-text-to-image-submission-questions/#findComment-1428519 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.