{"id":42052,"date":"2018-11-28T03:01:57","date_gmt":"2018-11-27T17:01:57","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=42052"},"modified":"2018-11-27T20:56:15","modified_gmt":"2018-11-27T10:56:15","slug":"mac-os-x-finder-drag-to-terminal-command-line-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/mac-os-x-finder-drag-to-terminal-command-line-tutorial\/","title":{"rendered":"Mac OS X Finder Drag to Terminal Command Line Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/mac_os_x_terminal_drag_finder_folders.gif\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Mac OS X Finder Drag to Terminal Command Line Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/data_uri_finder.gif\" title=\"Mac OS X Finder Drag to Terminal Command Line Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Mac OS X Finder Drag to Terminal Command Line Tutorial<\/p><\/div>\n<p>Today&#8217;s blog posting titular (and main) message is really a tip to those Mac OS X users that enjoy command line work, via the Terminal (desktop) application.  Do you waste a fair bit of time using the <a target=_blank title='cd command on Linux or Unix or Mac OS X' href='https:\/\/www.computerhope.com\/unix\/ucd.htm'>cd<\/a> command to navigate your way to various software projects, or the like?  Around here, we tend to use Mac OS X Terminal command line a lot, but get around too much use of <a target=_blank title='cd command on Linux or Unix or Mac OS X' href='https:\/\/www.computerhope.com\/unix\/ucd.htm'>cd<\/a> by letting (the fragrant aroma and sea breezes of) <a target=_blank title='MAMP' href='https:\/\/mamp.info'>MAMP<\/a> local Apache\/PHP\/MySql web server (wash over the very essence of our being).  Even delving into the woooooorrrrrllllldddds of <a target=_blank title='node.js and npm installers, as required' href='https:\/\/nodejs.org\/en\/'>node.js<\/a> or <a target=_blank title='MeteorJS Javascript Framework' href='https:\/\/www.meteor.com\/'>MeteorJS<\/a> or Backbone.js or AngularJS or ReactJS our first instinct would be to work off MAMP&#8217;s \/Application\/MAMP\/htdocs\/ (document root) because we sort of &#8220;live MAMP&#8221; and &#8220;hang about with MAMP&#8221; (<font size=1>you had to be there<\/font>), and so, find things later, to remember, as a result, and also, we baulk from those great long <i>cd<\/i> commands, as we are here today to outline another approach to all this.<\/p>\n<ol>\n<li>Half fill your Mac OS X screen with a Terminal session, perhaps at the left.<\/li>\n<li>Fill the other right half with a Mac OS X Finder window.<\/li>\n<li>Try typing a blank character appended to <i>cd<\/i> on the Terminal session &#8230; ie. &#8220;cd &#8220;<\/li>\n<li>In the Finder session, drag a folder over to the Terminal session to the right of the &#8220;cd &#8221; typing, and drop.<\/li>\n<li>In the Terminal session complete the command via an Enter key press.<\/li>\n<\/ol>\n<p>Get it?!  Cute, huh?!  Okay, that&#8217;s the end of today&#8217;s blog posting&#8217;s main thought.<\/p>\n<p>If you are not interested in the &#8220;Making Of &#8230;&#8221; thoughts you are excused now.<\/p>\n<p>We were wondering how to present this concept.  At first we thought a single image.  No, it needs an action, and consequence, to be apt with today&#8217;s subject matter (ie. to segment the single image could be done, but would not simulate the &#8220;drag and drop&#8221; action feeling).  What about a PDF Slideshow?  That&#8217;s good for covering the action, and consequence, but not for setting it off without user intervention, which may never happen.   So, in that case, what about an Animated GIF, homegrown (ie. where size can be bigger than with the redoubtable <a target=_blank title='Gifpal' href='http:\/\/gifpal.com'>Gifpal<\/a> animated GIF creator, for millions)?  Yes, more the go, we think.   And that got us back into the woooooorrrrrrlllllddd of <a title='Animated GIF and Video via PHP Writing PHP Data URI Tutorial' href='#agifvphpwphpdurit'>Animated GIF and Video via PHP Writing PHP Data URI Tutorial<\/a> and all its presentation styles, which we wanted to show you.<\/p>\n<ul>\n<li>we start with the titular animated GIF &#8230;<br \/><img decoding=\"async\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/mac_os_x_terminal_drag_finder_folders.gif\"><\/img><\/li>\n<li>then there&#8217;s the data URI animated GIF &#8230;<br \/><img decoding=\"async\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/data_uri_finder.gif\"><\/img><\/li>\n<li>then there&#8217;s the <a target=_blank title='ffmpeg' href='https:\/\/www.ffmpeg.org\/'>ffmpeg<\/a> created (stop and wait to be controlled) video idea &#8230;<br \/><video controls><source type='video\/mp4' src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/finder_drag_to_terminal.mp4\"><\/source><\/video><\/li>\n<li>then there&#8217;s the <a target=_blank title='ffmpeg' href='https:\/\/www.ffmpeg.org\/'>ffmpeg<\/a> created (attempt to autoplay (and loop), given there is no audio, though many platforms disallow this idea) video idea &#8230;<br \/><video autoplay=true loop=true><source type='video\/mp4' src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/finder_drag_to_terminal.mp4\"><\/source><\/video><\/li>\n<li>then there&#8217;s the animated GIF about this &#8220;Making Of &#8230;&#8221; work with &#8230; <img decoding=\"async\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/making_of_mac_os_x_finder_drag_to_terminal_command_line.gif\"><\/img><\/li>\n<\/ul>\n<p>Files work as well as folders.  Supposing wherever we see <i>cd<\/i> above you substitute in your mind the command line editor <i>vi<\/i> and wherever we talked about <i>folder<\/i> above you substitute in <i>ascii text file<\/i>, that could work too.  We hope you are left with ideas.<\/p>\n<hr>\n<p id='agifvphpwphpdurit'>Previous relevant <a target=_blank title='Animated GIF and Video via PHP Writing PHP Data URI Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/animated-gif-and-video-via-php-writing-php-data-uri-tutorial\/'>Animated GIF and Video via PHP Writing PHP Data URI Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Animated GIF and Video via PHP Writing PHP Data URI Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/video_or_not.jpg\" title=\"Animated GIF and Video via PHP Writing PHP Data URI Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Animated GIF and Video via PHP Writing PHP Data URI Tutorial<\/p><\/div>\n<p>There is a great open source command line application called <a target=_blank title='FFmpeg' href='https:\/\/www.ffmpeg.org\/'>&#8220;FFmpeg&#8221;<\/a> that can create video (or convert video) from image slides (for instance), and so, if we <b>merge functionality for this<\/b> into yesterday&#8217;s <a title='Animated GIF and Slideshow via PHP Writing PHP Data URI Tutorial' href='#agifsphpwphpdurit'>Animated GIF and Slideshow via PHP Writing PHP Data URI Tutorial<\/a> some &#8220;presentation&#8221; styles that our <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\" title=\"Click picture\">web application<\/a> can process are now &#8230;<\/p>\n<ul>\n<li>animated GIF<\/li>\n<li>slideshow<\/li>\n<li><b>video<\/b><\/li>\n<\/ul>\n<p>As useful as &#8220;FFmpeg&#8221; is, it is not necessarily a default application existing on web server operating systems like our rjmprogramming.com.au&#8217;s CentOS server.  But we do have it on our Mac OS X (MacBook Pro) operating system&#8217;s command line, so we write our PHP determining whether to &#8230;<\/p>\n<ul>\n<li>create the video data there and then via &#8220;FFmpeg&#8221; and PHP&#8217;s <a target=_blank title='PHP exec() method information' href='http:\/\/php.net\/manual\/en\/function.exec.php'>exec<\/a> method &#8230; or &#8230;<\/li>\n<li>provide instructions to be able to create the video back at your client computer (that has &#8220;FFmpeg&#8221; perhaps) &#8230; to suit the &#8230;<br \/>\n<code><br \/>\nffmpeg -r 1 -i %03d.jpg video.mp4<br \/>\n<\/code><br \/>\n &#8230; to create a video called video.mp4 with 1 second delays between (input) slides named 001.jpg then 002.jpg then 003.jpg etcetera &#8230; thanks <a target=_blank title='Useful link' href='https:\/\/stackoverflow.com\/questions\/5892308\/create-video-file-using-php'>useful webpage<\/a> for the help &#8230; that in the command line can sometimes be played via &#8230;<br \/>\n<code><br \/>\nopen video.mp4<br \/>\n<\/code><br \/>\n &#8230; or used in some HTML as per &#8230;<br \/>\n<code><br \/>\n&lt;video controls id=ivideo type='video\/mp4'&gt;&lt;source src='video.mp4'&gt;&lt;\/source&gt;&lt;\/video&gt;<br \/>\n<\/code><br \/>\n &#8230; that we show you, below, the Mac OS X local <a target=_blank title='MAMP local Apache\/PHP\/MySql web server' href='http:\/\/mamp.info'>MAMP<\/a> (Apache\/PHP\/MySql) web server running of today&#8217;s PHP to create &#8230;<br \/>\n<video style='width:100%;' controls id=ivideo type='video\/mp4'><source src='http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/vid_eo.mp4'><\/source><\/video>\n<\/li>\n<\/ul>\n<p>If you are a regular at this blog and &#8220;FFmpeg&#8221; sounds a bit familiar to you, that&#8217;s probably because you&#8217;ve read <a target=_blank title='FFmpeg Image Optimization Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/ffmpeg-image-optimization-primer-tutorial\/'>FFmpeg Image Optimization Primer Tutorial<\/a> on an earlier occasion <font size=2>&#8230; by candlelight <\/font><font size=1>&#8230; with the lights dimmed?!<\/font><\/p>\n<p>See this in the context of how this PHP <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php----GETME\" title=\"tutorial_to_animated_gif.php\">tutorial_to_animated_gif.php<\/a> code changed for videos in <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php----GETME\">this way<\/a> or try it as a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\" title=\"Click picture\">live run<\/a>.<\/p>\n<hr>\n<p id='agifsphpwphpdurit'>Previous relevant <a target=_blank title='Animated GIF and Slideshow via PHP Writing PHP Data URI Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/animated-gif-and-slideshow-via-php-writing-php-data-uri-tutorial\/'>Animated GIF and Slideshow via PHP Writing PHP Data URI Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Animated GIF and Slideshow via PHP Writing PHP Data URI Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/agmore.jpg\" title=\"Animated GIF via PHP Writing PHP Data URI Tutorial\"  style=\"float:left;\" \/><\/a><p class=\"wp-caption-text\">Animated GIF and Slideshow via PHP Writing PHP Data URI Tutorial<\/p><\/div>\n<p>To us, there are great similarities between animated GIFs and slideshows, as two forms of &#8220;presentation&#8221;, and so to extend yesterday&#8217;s <a title='Animated GIF via PHP Writing PHP Data URI Tutorial' href='#agifphpwphpdurit'>Animated GIF via PHP Writing PHP Data URI Tutorial<\/a> animated GIF creator &#8220;PHP Writes PHP&#8221; web application that now has the option for <a target=_blank title='Data URI information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Data_URI_scheme'>data URI<\/a> &#8220;exports&#8221; we add the functionality for &#8230;<\/p>\n<ul>\n<li>slideshow creation (using our inhouse methods) which defaults to a horizontal (hashtag type of) navigation &#8230; as well as adding a &#8230;<\/li>\n<li>slideshow creation, with Data URI image data, using functionality as if CSS <a target=_blank title='CSS z-index information from w3schools' href='http:\/\/www.w3schools.com\/cssref\/pr_pos_z-index.asp'>z-index<\/a> (ie. slides stacked on top of each other in <a target=_blank title='Overlay blog postings at this blog' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/overlay'>&#8220;overlay&#8221;<\/a> style) was being used, but actually isn&#8217;t &#8230;<\/li>\n<\/ul>\n<p> &#8230; that little bit different to another &#8220;stacked&#8221; (or z-index feeling) approach we talked about with <a target=_blank title='Multiple Class Slideshow Details Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/multiple-class-slideshow-details-tutorial\/'>Multiple Class Slideshow Details Tutorial<\/a>, where HTML element <a target=_blank title='HTML class information from w3schools' href='http:\/\/www.w3schools.com\/html\/html_classes.asp'>&#8220;class&#8221;<\/a> properties were changed so that the last class defined reflects the look of the slideshow slide desired at any given time.  We just use an array, and a <a target=_blank title='Javascript setTimeout() method information from w3schools' href='http:\/\/www.w3schools.com\/jsref\/met_win_settimeout.asp'>setTimeout<\/a> timer to achieve the same ends today, with our work (or &#8220;presentation&#8221;).  If this &#8220;horizontal versus stack&#8221; navigation choice interests you, also take a read of <a target=_blank title='HTML Input Element Types Randomized History Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/html-input-element-types-randomized-history-tutorial\/'>HTML Input Element Types Randomized History Tutorial<\/a>.<\/p>\n<p>Again, with all this added functionality, because it is &#8220;hosted&#8221; in an HTML <a target=_blank title='HTML iframe element information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_iframe.asp'>iframe<\/a> element all the existant web browser (Windows right click or Mac OS X two finger gesture) functionality can come into play, and make life quite interesting for your non-mobile users &#8220;collecting&#8221; data URIs <font size=1>&#8230; there are worse hobbies!<\/font><\/p>\n<p>You can see this in the context of how this PHP <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php---GETME\" title=\"tutorial_to_animated_gif.php\">tutorial_to_animated_gif.php<\/a> code changed for slideshows in <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php---GETME\">this way<\/a> or try it as a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\" title=\"Click picture\">live run<\/a>.<\/p>\n<hr>\n<p id='agifphpwphpdurit'>Previous relevant <a target=_blank title='Animated GIF via PHP Writing PHP Data URI Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/animated-gif-via-php-writing-php-data-uri-tutorial\/'>Animated GIF via PHP Writing PHP Data URI Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\"><img decoding=\"async\" style=\"float:left; border: 15px solid pink;\" alt=\"Animated GIF via PHP Writing PHP Data URI Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/animegif_datauri.jpg\" title=\"Animated GIF via PHP Writing PHP Data URI Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Animated GIF via PHP Writing PHP Data URI Tutorial<\/p><\/div>\n<p>The previous relevant &#8220;PHP writes PHP&#8221; methodology <a target=_blank title='Animated GIF information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/GIF'>animated GIF<\/a> creator we talked about, first, with <a title='Animated GIF via PHP Writing PHP Primer Tutorial' href='#agvpwppt'>Animated GIF via PHP Writing PHP Primer Tutorial<\/a> came back to mind yesterday with our <a target=_blank title='Missing Javascript Audio on Unmute Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/missing-javascript-audio-on-unmute-tutorial\/'>Missing Javascript Audio on Unmute Tutorial<\/a>, where we pondered on whether an animated GIF could be represented on a webpage by a <a target=_blank title='Data URI information from Wikipedia ... thanks' href='https:\/\/en.wikipedia.org\/wiki\/Data_URI_scheme'>data URI<\/a>.  Why take an interest in this?  Data URIs are very important to do with &#8230;<\/p>\n<ul>\n<li>future mobile development web form navigation benefits from their usage<\/li>\n<li>the use of data URIs make your web pages independent of web server location issues, so make your web data more portable, and flexible<\/li>\n<\/ul>\n<p> &#8230; and ideally, animated GIFs are also not just a decorative part of all this web application usage (as they can be a very efficient representation of an animation that could not be a more succinct way to show that animation or presentation), and if they can be made to be like any other GIF or image data file in the ways they can be represented (and used), then that is all for the good.<\/p>\n<p>So we changed the Jeroen van Wissen&#8217;s <a target=_blank href='http:\/\/www.jeroenvanwissen.nl\/weblog\/php\/howto-generate-animated-gif-with-php' title='Great PHP library for Animated GIF creation work, thanks'>inspired<\/a> PHP (&#8220;PHP writes PHP&#8221; methodology) code <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php--GETME\">tutorial_to_animated_gif.php<\/a> code allow for this extra animated GIF data URI representation in a new additional HTML iframe (containing the animegif.html of code below) that when harnessing existant web browser (Windows right click or Mac OS X two finger gesture) functionality can glean for us, as required, that animated GIF&#8217;s data URI representation.  But don&#8217;t get too excited about this being rocket science, in that with a bit of effort, and PHP, it could have been gleaned <b>from what we already produced<\/b>, in that (in PHP &#8220;land&#8221;) &#8230;<\/p>\n<p><code><br \/>\n$lastbitto=\"\\$fp = fopen('animegif.gif', 'w');<br \/>\n\\$data = \\$gif->GetAnimation();<br \/>\n<b>\\$dataUri = 'data:image\/gif;base64,' . <a target=_blank title='PHP base64_encode information' href='http:\/\/php.net\/manual\/en\/function.base64-encode.php'>base64_encode<\/a>(\\$data);<\/b><br \/>\nfwrite(\\$fp, \\$data);<br \/>\nfclose(\\$fp);<br \/>\n<b>\\$fp = fopen('animegif.html', 'w');<br \/>\nfwrite(\\$fp, '&lt;!doctype html&gt;&lt;html&gt;&lt;body&gt;&lt;h1&gt;Data URI version below&lt;h1&gt;&lt;br&gt;&lt;h4&gt; ... via web browser (Windows right click, Mac OS X two finger gesture ...&lt;\/h4&gt;&lt;br&gt;&lt;img src=' . \\\"\\\\n\\\" . \\$dataUri . \\\"\\\\n\\\" . ' title=DataURI&gt;&lt;\/img&gt;&lt;\/body&gt;&lt;\/html&gt;');<br \/>\nfclose(\\$fp);\";<\/b><br \/>\n<\/code><\/p>\n<p>You can see this in the context of how this PHP code changed in <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php--GETME\">this way<\/a> or try it as a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\" title=\"Click picture\">live run<\/a>.<\/p>\n<hr>\n<p id='agvpwppt'>Previous relevant <a target=_blank title='Animated GIF via PHP Writing PHP Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/animated-gif-via-php-writing-php-primer-tutorial\/'>Animated GIF via PHP Writing PHP 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\/PHP\/animegif\/\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Animated GIF via PHP Writing PHP Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/animated_gif-186of.jpg\" title=\"Animated GIF via PHP Writing PHP Primer Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Animated GIF via PHP Writing PHP Primer Tutorial<\/p><\/div>\n<p>We find another very useful reason for PHP to write PHP.  Today we establish a PHP web application to dynamically create Animated GIF images via some still images, like <a target=_blank title='Gifpal' href='http:\/\/www.gifpal.com'>Gifpal<\/a> would do.<\/p>\n<p>We have some great open source PHP code to thank for the basis of the functionality we found at Jeroen van Wissen&#8217;s very <a target=_blank href='http:\/\/www.jeroenvanwissen.nl\/weblog\/php\/howto-generate-animated-gif-with-php'>useful link<\/a>, thanks.<\/p>\n<p>Then we added a more user friendly interface to get the information off the user we need.   We present this in an HTML form, which navigates to the same PHP to do the actual assembly of the Animated GIF via techniques where PHP writes PHP &#8230; and really needs to, to be useful.<\/p>\n<p>Do you remember, last, when we did some PHP writing PHP functionality &#8230; <a target=_blank title='PHP Writes PHP Vertical TextBoxes Primer Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/php-writes-php-vertical-textboxes-primer-tutorial\/'>PHP Writes PHP Vertical TextBoxes Primer Tutorial<\/a>?<\/p>\n<p>And inside the PHP it makes big use of the <a target=_blank title='GD and Image Functions' href='http:\/\/php.net\/manual\/en\/ref.image.php'>GD and Image Functions<\/a> to read and write the image data we assemble via the user information.<\/p>\n<p>This Animated GIF form of animation is the easiest to implement, as it consists of just the one GIF image file, but the user has very little control over the animation settings, such as the delay between stills, one of the settings we ask about in our web application.<\/p>\n<p>Our PHP source code today you could call <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php_GETME\" title='tutorial_to_animated_gif.php'>tutorial_to_animated_gif.php<\/a> and we redirect you to some live run ideas &#8230;<\/p>\n<ul>\n<li>normal run with HTML form which posts back to itself &#8230; <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php\" title='live run'>live run<\/a><\/li>\n<li>example GET parameters <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/tutorial_to_animated_gif.php?delay=500&#038;stitle=PaintBrush%20Panning%20Primer%20Tutorial&#038;slideshow=http:\/\/www.rjmprogramming.com.au\/PHP\/animegif\/index.html\" title='get parameters live run'>run<\/a> (like our tutorial picture)<\/li>\n<\/ul>\n<p>Hope you find this tutorial useful.<\/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='#d17197' onclick='var dv=document.getElementById(\"d17197\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/category\/animation\/\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d17197' 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='#d35097' onclick='var dv=document.getElementById(\"d35097\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/category\/animated-gif\/\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d35097' 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='#d35120' onclick='var dv=document.getElementById(\"d35120\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/slideshow\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d35120' 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='#d35146' onclick='var dv=document.getElementById(\"d35146\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/ffmpeg\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d35146' 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='#d42052' onclick='var dv=document.getElementById(\"d42052\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/mac-os-x\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d42052' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Today&#8217;s blog posting titular (and main) message is really a tip to those Mac OS X users that enjoy command line work, via the Terminal (desktop) application. Do you waste a fair bit of time using the cd command to &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/mac-os-x-finder-drag-to-terminal-command-line-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,29,37],"tags":[83,364,415,436,725,744,980,1252,1319,1369],"class_list":["post-42052","post","type-post","status-publish","format-standard","hentry","category-elearning","category-operating-system","category-tutorials","tag-animated-gif","tag-drag-and-drop","tag-ffmpeg","tag-finder","tag-mac-os-x","tag-mamp","tag-presentation","tag-terminal","tag-tutorial","tag-video"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/42052"}],"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=42052"}],"version-history":[{"count":9,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/42052\/revisions"}],"predecessor-version":[{"id":42069,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/42052\/revisions\/42069"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=42052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=42052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=42052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}