{"id":17706,"date":"2015-10-13T05:01:09","date_gmt":"2015-10-12T19:01:09","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=17706"},"modified":"2015-10-12T12:59:14","modified_gmt":"2015-10-12T02:59:14","slug":"animated-gif-slides-via-imagemagick-primer-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/animated-gif-slides-via-imagemagick-primer-tutorial\/","title":{"rendered":"Animated GIF Slides via ImageMagick Primer Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animated_gif_slides.php\"><img decoding=\"async\" style=\"border: 15px solid pink;\" alt=\"Animated GIF Slides via ImageMagick Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animated_gif_slides.jpg\" title=\"Animated GIF Slides via ImageMagick Primer Tutorial\"  style=\"float:left;\"  \/><\/a><p class=\"wp-caption-text\">Animated GIF Slides via ImageMagick Primer Tutorial<\/p><\/div>\n<p>Animated GIFs are a means to store a slideshow or visual performance of some kind, that consists of several photograph stills, into the one image GIF file, which displays as an animation.<\/p>\n<p>The last time we talked about Animated GIFs at this blog we wrote a web application to construct Animated GIFs from its constituent parts, when we presented <a target=_blank title='Animated GIF via PHP Writing PHP Primer Tutorial' href='#agvpwppt'>Animated GIF via PHP Writing PHP Primer Tutorial<\/a> as shown below.<\/p>\n<p>If you guessed that today, instead, we were going to &#8220;take a walk in the Black Forest&#8221; or &#8220;catch an Ordon Catfish in a fish hole&#8221; &#8230; well, no &#8230; but &#8230; yes &#8230; well.<\/p>\n<p>Today, we are going to use the PHP <a target=_blank title='PHP ImageMagick class information' href='http:\/\/php.net\/manual\/en\/book.imagick.php'>ImageMagick<\/a> class (as we did yesterday with <a target=_blank title='ImageMagick and Three Ps Affine Transformation Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/imagemagick-and-three-ps-affine-transformation-tutorial\/'>ImageMagick and Three Ps Affine Transformation Tutorial<\/a>) to deconstruct an Animated GIF to show you its constituent photograph still parts, presented in one row of table cell elements, any\/all of which you could right click and use a &#8220;Save Image As&#8221; option on your web browser to download these images, as necessary.<\/p>\n<p>ImageMagick knows no bounds, and we continue to find good uses for it, though if you expect it to make you breakfast in bed before you ordered it, or even know that you wanted it, please think again <font size=1>would recommend the eggs benedict<\/font>.<\/p>\n<p>Two websites spring to my mind when you talk about Animated GIFs &#8230;<\/p>\n<ul>\n<li><a target=_blank title='Tumblr' href='https:\/\/www.tumblr.com\/'>Tumblr<\/a> &#8230; which uses them a lot <strike>man<\/strike> person<\/li>\n<li><a target=_blank title='Gifpal' href='http:\/\/www.gifpal.com\/'>Gifpal<\/a> &#8230; which helps you to construct your own <strike>man<\/strike> person<\/li>\n<\/ul>\n<p>We have PHP serverside code to show you today with <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animated_gif_slides.php_GETME\" title='animated_gif_slides.php'>animated_gif_slides.php<\/a> and we have a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/animated_gif_slides.php\" title='Click picture'>live run<\/a> link too.  And <a id='myat' href='#myat' onclick=\" document.getElementById('smyat').style.display='inline'; \">yes<\/a><span id='smyat' style='display:none;'>, we have no bananas<\/span>.<\/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='#d17706' onclick='var dv=document.getElementById(\"d17706\"); 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='d17706' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Animated GIFs are a means to store a slideshow or visual performance of some kind, that consists of several photograph stills, into the one image GIF file, which displays as an animation. The last time we talked about Animated GIFs &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/animated-gif-slides-via-imagemagick-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":[4,12,30,37],"tags":[83,84,929,932,997,1151,1319],"class_list":["post-17706","post","type-post","status-publish","format-standard","hentry","category-animation","category-elearning","category-photography","category-tutorials","tag-animated-gif","tag-animation-2","tag-photograph","tag-php","tag-programming","tag-slideshow","tag-tutorial"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/17706"}],"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=17706"}],"version-history":[{"count":9,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/17706\/revisions"}],"predecessor-version":[{"id":17715,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/17706\/revisions\/17715"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=17706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=17706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=17706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}