{"id":14886,"date":"2015-05-18T05:01:01","date_gmt":"2015-05-17T19:01:01","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=14886"},"modified":"2015-05-17T21:02:34","modified_gmt":"2015-05-17T11:02:34","slug":"php-gd-and-image-functions-primer-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/php-gd-and-image-functions-primer-tutorial\/","title":{"rendered":"PHP GD and Image Functions Primer Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"PHP GD and Image Functions Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/PHP_GD.jpg\" title=\"PHP GD and Image Functions Primer Tutorial\" \/><\/a><p class=\"wp-caption-text\">PHP GD and Image Functions Primer Tutorial<\/p><\/div>\n<p>The PHP <a target=_blank title='PHP GD image library' href='http:\/\/php.net\/manual\/en\/ref.image.php'>GD<\/a> library is great for image drawing. The huge advantage with having this &#8220;talent&#8221; in PHP is that PHP is a serverside language capable of &#8220;talking&#8221; to your web server, and save files there, so you can download the results of what it creates there.<\/p>\n<p>So we figured we&#8217;d show you some of this GD library talent by extending the functionality of our previous <a target=_blank title='PHP\/Javascript SVG Primer Tutorial' href='#pjspt'>PHP\/Javascript SVG Primer Tutorial<\/a> as shown below, and add a second form submit button (if this interests you, have a read of <a target=_blank href='https:\/\/www.rjmprogramming.com.au\/ITblog\/html-form-multiple-submit-buttons-primer-tutorial\/'>HTML Form Multiple Submit Buttons Primer Tutorial<\/a> as well).<\/p>\n<p>We show you your downloadable image you may have created using a Javascript <a target=_blank title='Javascript window.open() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_win_open.asp'>window.open()<\/a> method of window creation for the equivalent SVG shape functionality for &#8230;<\/p>\n<ul>\n<li>Circle<\/li>\n<li>Rectangle<\/li>\n<li>Line<\/li>\n<li>Ellipse<\/li>\n<li>Polygon<\/li>\n<\/ul>\n<p>Today we have PHP and Javascript programmable source code you could call <a target=_blank title='SVG_Primer.php' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/SVG_Primer.php-GETME'>SVG_Primer.php<\/a> and here is its <a target=_blank title='SVG_Primer.php' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/SVG_Primer.php'>live run<\/a>.  The way the PHP changed for this GD library functionality can be seen at <a target=_blank title='SVG_Primer.php' href='http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/SVG_Primer.php-GETME'>SVG_Primer.php<\/a><\/p>\n<hr>\n<p id='pjspt'>Previous relevant <a target=_blank title='PHP\/Javascript SVG Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/phpjavascript-svg-primer-tutorial\/'>PHP\/Javascript SVG Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/\"><img decoding=\"async\" id=\"hjspt\" style=\"float:left;border: 15px solid pink;\" alt=\"PHP\/Javascript SVG Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/SVG_Primer.png\" title=\"PHP\/Javascript SVG Primer Tutorial\"  onmouseover=\" document.getElementById('hjspt').src = document.getElementById('hjspt').src.replace('png','PNG').replace('jpg','png').replace('PNG','jpg');     \" \/><\/a><p class=\"wp-caption-text\">PHP\/Javascript SVG Primer Tutorial<\/p><\/div>\n<p>The HTML5 specification allows for the display of 2D-graphics via <a target=_blank href='http:\/\/www.tutorialspoint.com\/html5\/html5_svg.htm' title='SVG information'>SVG HTML tags<\/a> which use graphical applications in XML and the XML is then rendered by an SVG viewer.   SVG stands for Scalable Vector Graphics.<\/p>\n<p>We&#8217;ve talked about the HTML canvas element as another means to come to this end, but the SVG methods are more straightforward in their creation.<\/p>\n<p>For today&#8217;s tutorial we follow the advice at this wonderful <a target=_blank href='http:\/\/www.tutorialspoint.com\/html5\/html5_svg.htm' title='SVG information'>tutorial<\/a> and wrap it in PHP, so that you can specify your own parameters.   Hope you find it very useful, and easy.<\/p>\n<p>This demonstrates to you that if you have some great static HTML you can keep that great static content and present a dynamic version the user can play around with, and learn from, by adding that PHP server-side content.   For today&#8217;s PHP interface we got the HTML to use an HTML form of the relevant shape&#8217;s characteristics and <i>post<\/i> this data back to the same PHP webpage, analyzing the $_POST[] data to fill in the static HTML parameter values with user-defined parameter alternatives.<\/p>\n<p>Today we have PHP and Javascript programmable source code you could call <a target=_blank title='SVG_Primer.php' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/SVG_Primer.php_GETME'>SVG_Primer.php<\/a> and here is its <a target=_blank title='SVG_Primer.php' href='http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/SVG\/SVG_Primer.php'>live run<\/a>.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#8614' onclick='var dv=document.getElementById(\"d8614\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/?tag=HTML5\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d8614' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#14886' onclick='var dv=document.getElementById(\"d14886\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/?tag=PHP\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d14886' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>The PHP GD library is great for image drawing. The huge advantage with having this &#8220;talent&#8221; in PHP is that PHP is a serverside language capable of &#8220;talking&#8221; to your web server, and save files there, so you can download &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/php-gd-and-image-functions-primer-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,37],"tags":[452,1550,590,652,932,997,1215,1226,1319],"class_list":["post-14886","post","type-post","status-publish","format-standard","hentry","category-elearning","category-tutorials","tag-form","tag-gd","tag-image","tag-javascript","tag-php","tag-programming","tag-submit-button","tag-svg","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/14886"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=14886"}],"version-history":[{"count":5,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/14886\/revisions"}],"predecessor-version":[{"id":14892,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/14886\/revisions\/14892"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=14886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=14886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=14886"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}