{"id":1355,"date":"2018-01-19T19:22:44","date_gmt":"2018-01-19T19:22:44","guid":{"rendered":"http:\/\/goofy-trucks.flywheelsites.com\/image-creation-with-php\/"},"modified":"2018-01-19T19:24:43","modified_gmt":"2018-01-19T19:24:43","slug":"image-creation-with-php","status":"publish","type":"post","link":"https:\/\/phpbuilder.com\/image-creation-with-php\/","title":{"rendered":"Image Creation With PHP"},"content":{"rendered":"<div class=\"phpbuilder-content\">\n<div class=\"phpbuilder-meta\">\n<div class=\"\">By Rasmus Lerdorf<\/div>\n<div class=\"\">on July 30, 2000<\/div>\n<\/p><\/div>\n<div id=\"overflow-content\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/phpbuilder.com\/wp-content\/uploads\/2018\/01\/rasmus.jpg\" class=\"articleAuthorImg\" alt=\"picture of Rasmus Lerdorf\" width=\"100\" height=\"92\" align=\"left\"\/><\/p>\n<div class=\"articlePara\">\nMany people do not realize that PHP can be used to create non-HTML data.  This is<br \/>\nespecially useful for creating images on the fly.  It could be simple bar graphs that display<br \/>\ndata from a database, or even simpler, just a way to create graphic buttons on the fly.\n<\/div>\n<div class=\"articlePara\">\nWhen I am putting up a site quickly, I find that it is a waste of my time to sit and fiddle<br \/>\nwith an image editor to create nice-looking graphical buttons and menus.  Instead I will pick a<br \/>\nnice TTF font and use the following simple script which I usually call &#8216;button.php3&#8217;:<\/div>\n<div class=\"articlePhpEx\">\n<font face=\"courier\"><code><span style=\"color: #000000\"><\/p>\n<p><span style=\"color: #0000BB\">&lt;?php<br \/>\n<br \/>\u00a0\u00a0Header<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #DD0000\">\"Content-type:\u00a0image\/gif\"<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0if(!isset(<\/span><span style=\"color: #0000BB\">$s<\/span><span style=\"color: #007700\">))\u00a0<\/span><span style=\"color: #0000BB\">$s<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">11<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$size\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">imagettfbbox<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$s<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #DD0000\">\"\/fonts\/TIMES.TTF\"<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$text<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$dx\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">abs<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$size<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #0000BB\">2<\/span><span style=\"color: #007700\">]-<\/span><span style=\"color: #0000BB\">$size<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">]);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$dy\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">abs<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$size<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #0000BB\">5<\/span><span style=\"color: #007700\">]-<\/span><span style=\"color: #0000BB\">$size<\/span><span style=\"color: #007700\">[<\/span><span style=\"color: #0000BB\">3<\/span><span style=\"color: #007700\">]);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$xpad<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">9<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$ypad<\/span><span style=\"color: #007700\">=<\/span><span style=\"color: #0000BB\">9<\/span><span style=\"color: #007700\">;<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$im\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">imagecreate<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$dx<\/span><span style=\"color: #007700\">+<\/span><span style=\"color: #0000BB\">$xpad<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$dy<\/span><span style=\"color: #007700\">+<\/span><span style=\"color: #0000BB\">$ypad<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$blue\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">ImageColorAllocate<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">0x2c<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0x6D<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0xAF<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$black\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">ImageColorAllocate<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">$white\u00a0<\/span><span style=\"color: #007700\">=\u00a0<\/span><span style=\"color: #0000BB\">ImageColorAllocate<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">255<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">255<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">255<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">ImageRectangle<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$dx<\/span><span style=\"color: #007700\">+<\/span><span style=\"color: #0000BB\">$xpad<\/span><span style=\"color: #007700\">-<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$dy<\/span><span style=\"color: #007700\">+<\/span><span style=\"color: #0000BB\">$ypad<\/span><span style=\"color: #007700\">-<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$black<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">ImageRectangle<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$dx<\/span><span style=\"color: #007700\">+<\/span><span style=\"color: #0000BB\">$xpad<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$dy<\/span><span style=\"color: #007700\">+<\/span><span style=\"color: #0000BB\">$ypad<\/span><span style=\"color: #007700\">,<\/span><span style=\"color: #0000BB\">$white<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">ImageTTFText<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">$s<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,\u00a0(int)(<\/span><span style=\"color: #0000BB\">$xpad<\/span><span style=\"color: #007700\">\/<\/span><span style=\"color: #0000BB\">2<\/span><span style=\"color: #007700\">)+<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">$dy<\/span><span style=\"color: #007700\">+(int)(<\/span><span style=\"color: #0000BB\">$ypad<\/span><span style=\"color: #007700\">\/<\/span><span style=\"color: #0000BB\">2<\/span><span style=\"color: #007700\">),\u00a0<\/span><span style=\"color: #0000BB\">$black<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #DD0000\">\"\/fonts\/TIMES.TTF\"<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">$text<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">ImageTTFText<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">$s<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">0<\/span><span style=\"color: #007700\">,\u00a0(int)(<\/span><span style=\"color: #0000BB\">$xpad<\/span><span style=\"color: #007700\">\/<\/span><span style=\"color: #0000BB\">2<\/span><span style=\"color: #007700\">),\u00a0<\/span><span style=\"color: #0000BB\">$dy<\/span><span style=\"color: #007700\">+(int)(<\/span><span style=\"color: #0000BB\">$ypad<\/span><span style=\"color: #007700\">\/<\/span><span style=\"color: #0000BB\">2<\/span><span style=\"color: #007700\">)-<\/span><span style=\"color: #0000BB\">1<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">$white<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #DD0000\">\"\/fonts\/TIMES.TTF\"<\/span><span style=\"color: #007700\">,\u00a0<\/span><span style=\"color: #0000BB\">$text<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">ImageGif<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">);<br \/>\n<br \/>\u00a0\u00a0<\/span><span style=\"color: #0000BB\">ImageDestroy<\/span><span style=\"color: #007700\">(<\/span><span style=\"color: #0000BB\">$im<\/span><span style=\"color: #007700\">);<br \/>\n<br \/><\/span><span style=\"color: #0000BB\">?&gt;<br \/>\n<br \/><\/span><br \/>\n<\/span><br \/>\n<\/code><\/font><\/div>\n<div class=\"articlePara\">\nIt is very important to realize that you cannot put any HTML tags in this file.  There should also not<br \/>\nbe any spaces or blank lines before or after the &lt;? and ?&gt; tags.  If you are getting a broken image<br \/>\nusing this script, chances are you have a stray carriage return somewhere outside the PHP tags.<\/div>\n<\/div>\n<p><\/p>\n<div style=\"float: left; padding:15px; color:#17AAF3\">\n<div style=\"background-color:#B6E5FC; font-size:16px; margin-top:1px; padding:1px 4px 1px 4px; color:#000; font-style:bold; float:left;\">1<\/div>\n<div style=\"float:left; font-size:16px; color:#FF7A22; padding:2px 2px 2px 2px; \">| <\/div>\n<div style=\"float:left; padding:2px 4px 2px 4px;\"><a class=\"pageNumber\" href=\"rasmus199901244658.html?page=2\">2<\/a> <\/div>\n<div style=\"float:left; padding:2px;\"><a class=\"paginationPageLink\" href=\"rasmus199901244658.html?page=2\">Next Page \u00bb<\/a><\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>By Rasmus Lerdorf on July 30, 2000 Many people do not realize that PHP can be used to create non-HTML data. This is especially useful for creating images on the fly. It could be simple bar graphs that display data from a database, or even simpler, just a way to&#8230; <a href=\"https:\/\/phpbuilder.com\/image-creation-with-php\/\" class=\"readmore\"><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1355","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"_links":{"self":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1355","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/comments?post=1355"}],"version-history":[{"count":1,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1355\/revisions"}],"predecessor-version":[{"id":2176,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/posts\/1355\/revisions\/2176"}],"wp:attachment":[{"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/media?parent=1355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/categories?post=1355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/phpbuilder.com\/wp-json\/wp\/v2\/tags?post=1355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}