&1",$aret,$retv); //$videopath=explode("ffmpeg",explode("\n",$videopaths)[-1 + sizeof(explode("\n",$videopaths))])[0]; // $videopaths[-1 + sizeof($videopaths)]; //$aret[0]; //echo $retv . "~" . $videopaths . "*" . $videopath . "^" . $aret[0]; //exit; $videocmd=$videopath . "ffmpeg -r " . (1000 / $delay) . " -i " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "%03d.jpg " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mp4 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad"; $svideocmd="ffmpeg -r " . (1000 / $delay) . " -i " . "%03d.jpg " . "video.mp4"; $videohtml=""; $videosuffix=""; $ipis=""; $agifphp=""; $zzz="," . $_GET['red'] . "," . $_GET['green'] . "," . $_GET['blue'] . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else if (isset($_POST['red']) && isset($_POST['green']) && isset($_POST['blue'])) { $prestfle=""; $zzz="," . $_POST['red'] . "," . $_POST['green'] . "," . $_POST['blue'] . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else if (isset($_GET['background-color'])) { $colis=str_replace('#','',urldecode($_GET['background-color'])); if ($colis != "") { $cn=color_name_to_hex($colis); if ((strcmp(substr($colis,0,1),'0') < 0 || strcmp(substr($colis,0,1),'9') > 0) && $cn != $colis) { $prestfle=""; $zzz="," . $ris . "," . $gis . "," . $bis . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else if (strlen($colis) == 6) { $prestfle=""; $zzz="," . hexdec(substr($colis,0,2)) . "," . hexdec(substr($colis,2,2)) . "," . hexdec(substr($colis,4,2)) . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else if (strpos(strtolower($colis),'rgb') !== false) { $prestfle=""; $zzz="," . explode(",",str_replace(")",",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis)))))[0] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[1] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[2] . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else { $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2,0,0,0,'bin'); echo \$gif->GetAnimation(); ?> "; } } } else if (isset($_POST['background-color'])) { $colis=str_replace('#','',urldecode($_POST['background-color'])); if ($colis != "") { $cn=color_name_to_hex($colis); if ((strcmp(substr($colis,0,1),'0') < 0 || strcmp(substr($colis,0,1),'9') > 0) && $cn != $colis) { $prestfle=""; $zzz="," . $ris . "," . $gis . "," . $bis . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else if (strlen($colis) == 6) { $prestfle=""; $zzz="," . hexdec(substr($colis,0,2)) . "," . hexdec(substr($colis,2,2)) . "," . hexdec(substr($colis,4,2)) . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else if (strpos(strtolower($colis),'rgb') !== false) { $prestfle=""; $zzz="," . explode(",",str_replace(")",",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis)))))[0] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[1] . "," . explode(",",str_replace("rgb(","",str_replace("rgba(","",strtolower($colis))))[2] . ","; $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2" . $zzz . "'bin'); echo \$gif->GetAnimation(); ?> "; } else { $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2,0,0,0,'bin'); echo \$gif->GetAnimation(); ?> "; } } } else { $lastbit=" // Generate the animated gif and output to screen. \$gif = new GIFEncoder(\$frames,\$framed,0,2,0,0,0,'bin'); echo \$gif->GetAnimation(); ?> "; } $lastbitfrom="echo \$gif->GetAnimation();"; $lastbitto="\$fp = fopen('animegif.gif', 'w'); \$data = \$gif->GetAnimation(); \$dataUri = 'data:image/gif;base64,' . base64_encode(\$data); fwrite(\$fp, \$data); fclose(\$fp); \$fp = fopen('animegif.html', 'w'); fwrite(\$fp, '

Data URI version below


... via web browser (Windows right click, Mac OS X two finger gesture) ...


'); fclose(\$fp);"; $agtext=""; $url=""; // converts an html color name to a hex color value // if the input is not a color name, the original value is returned // http://wpCodeSnippets.info function color_name_to_hex($color_name) { // thanks to https://stackoverflow.com/questions/2553566/how-to-convert-a-string-color-to-its-hex-code-or-rgb-value global $ris, $gis, $bis; // standard 147 HTML color names $colors = array( 'aliceblue'=>'F0F8FF', 'antiquewhite'=>'FAEBD7', 'aqua'=>'00FFFF', 'aquamarine'=>'7FFFD4', 'azure'=>'F0FFFF', 'beige'=>'F5F5DC', 'bisque'=>'FFE4C4', 'black'=>'000000', 'blanchedalmond '=>'FFEBCD', 'blue'=>'0000FF', 'blueviolet'=>'8A2BE2', 'brown'=>'A52A2A', 'burlywood'=>'DEB887', 'cadetblue'=>'5F9EA0', 'chartreuse'=>'7FFF00', 'chocolate'=>'D2691E', 'coral'=>'FF7F50', 'cornflowerblue'=>'6495ED', 'cornsilk'=>'FFF8DC', 'crimson'=>'DC143C', 'cyan'=>'00FFFF', 'darkblue'=>'00008B', 'darkcyan'=>'008B8B', 'darkgoldenrod'=>'B8860B', 'darkgray'=>'A9A9A9', 'darkgreen'=>'006400', 'darkgrey'=>'A9A9A9', 'darkkhaki'=>'BDB76B', 'darkmagenta'=>'8B008B', 'darkolivegreen'=>'556B2F', 'darkorange'=>'FF8C00', 'darkorchid'=>'9932CC', 'darkred'=>'8B0000', 'darksalmon'=>'E9967A', 'darkseagreen'=>'8FBC8F', 'darkslateblue'=>'483D8B', 'darkslategray'=>'2F4F4F', 'darkslategrey'=>'2F4F4F', 'darkturquoise'=>'00CED1', 'darkviolet'=>'9400D3', 'deeppink'=>'FF1493', 'deepskyblue'=>'00BFFF', 'dimgray'=>'696969', 'dimgrey'=>'696969', 'dodgerblue'=>'1E90FF', 'firebrick'=>'B22222', 'floralwhite'=>'FFFAF0', 'forestgreen'=>'228B22', 'fuchsia'=>'FF00FF', 'gainsboro'=>'DCDCDC', 'ghostwhite'=>'F8F8FF', 'gold'=>'FFD700', 'goldenrod'=>'DAA520', 'gray'=>'808080', 'green'=>'008000', 'greenyellow'=>'ADFF2F', 'grey'=>'808080', 'honeydew'=>'F0FFF0', 'hotpink'=>'FF69B4', 'indianred'=>'CD5C5C', 'indigo'=>'4B0082', 'ivory'=>'FFFFF0', 'khaki'=>'F0E68C', 'lavender'=>'E6E6FA', 'lavenderblush'=>'FFF0F5', 'lawngreen'=>'7CFC00', 'lemonchiffon'=>'FFFACD', 'lightblue'=>'ADD8E6', 'lightcoral'=>'F08080', 'lightcyan'=>'E0FFFF', 'lightgoldenrodyellow'=>'FAFAD2', 'lightgray'=>'D3D3D3', 'lightgreen'=>'90EE90', 'lightgrey'=>'D3D3D3', 'lightpink'=>'FFB6C1', 'lightsalmon'=>'FFA07A', 'lightseagreen'=>'20B2AA', 'lightskyblue'=>'87CEFA', 'lightslategray'=>'778899', 'lightslategrey'=>'778899', 'lightsteelblue'=>'B0C4DE', 'lightyellow'=>'FFFFE0', 'lime'=>'00FF00', 'limegreen'=>'32CD32', 'linen'=>'FAF0E6', 'magenta'=>'FF00FF', 'maroon'=>'800000', 'mediumaquamarine'=>'66CDAA', 'mediumblue'=>'0000CD', 'mediumorchid'=>'BA55D3', 'mediumpurple'=>'9370D0', 'mediumseagreen'=>'3CB371', 'mediumslateblue'=>'7B68EE', 'mediumspringgreen'=>'00FA9A', 'mediumturquoise'=>'48D1CC', 'mediumvioletred'=>'C71585', 'midnightblue'=>'191970', 'mintcream'=>'F5FFFA', 'mistyrose'=>'FFE4E1', 'moccasin'=>'FFE4B5', 'navajowhite'=>'FFDEAD', 'navy'=>'000080', 'oldlace'=>'FDF5E6', 'olive'=>'808000', 'olivedrab'=>'6B8E23', 'orange'=>'FFA500', 'orangered'=>'FF4500', 'orchid'=>'DA70D6', 'palegoldenrod'=>'EEE8AA', 'palegreen'=>'98FB98', 'paleturquoise'=>'AFEEEE', 'palevioletred'=>'DB7093', 'papayawhip'=>'FFEFD5', 'peachpuff'=>'FFDAB9', 'peru'=>'CD853F', 'pink'=>'FFC0CB', 'plum'=>'DDA0DD', 'powderblue'=>'B0E0E6', 'purple'=>'800080', 'red'=>'FF0000', 'rosybrown'=>'BC8F8F', 'royalblue'=>'4169E1', 'saddlebrown'=>'8B4513', 'salmon'=>'FA8072', 'sandybrown'=>'F4A460', 'seagreen'=>'2E8B57', 'seashell'=>'FFF5EE', 'sienna'=>'A0522D', 'silver'=>'C0C0C0', 'skyblue'=>'87CEEB', 'slateblue'=>'6A5ACD', 'slategray'=>'708090', 'slategrey'=>'708090', 'snow'=>'FFFAFA', 'springgreen'=>'00FF7F', 'steelblue'=>'4682B4', 'tan'=>'D2B48C', 'teal'=>'008080', 'thistle'=>'D8BFD8', 'tomato'=>'FF6347', 'turquoise'=>'40E0D0', 'violet'=>'EE82EE', 'wheat'=>'F5DEB3', 'white'=>'FFFFFF', 'whitesmoke'=>'F5F5F5', 'yellow'=>'FFFF00', 'yellowgreen'=>'9ACD32'); $color_name = strtolower($color_name); if (isset($colors[$color_name])) { $ris = hexdec(substr($colors[$color_name],0,2)); $gis = hexdec(substr($colors[$color_name],2,2)); $bis = hexdec(substr($colors[$color_name],4,2)); return ('#' . $colors[$color_name]); } else { return ($color_name); } } function inhouseslideshow($uarray,$uarraydatauri) { global $agtext, $videocmd, $videopath; if (sizeof($uarray) == 0) return ""; if (file_exists($videopath . "ffmpeg")) { exec($videocmd); // exec("`which ffmpeg` " . explode("ffmpeg",$videocmd)[1]); } //echo $videocmd; //exit; $sofar=" \n"; $sofar.=" \n"; $sofar.="" . $agtext . " - via RJM Programming Slideshow Presentation \n"; $sofar.=" \n "; $sofar.="" . $agtext . " \n "; $sofar.=" \n "; $sofar.=" \n "; $sofar.="

Slideshow version below


... optionally get content via web browser (Windows right click, Mac OS X two finger gesture) ...


\n "; $sofar.=" \n "; $sofar.=" \n "; $sofar.=" \n "; //for ($iqw=1; $iqw--> \n "; //} return $sofar . "
@-->
\n\n"; } function jserver_remote_addr() { global $stfle; $rma = $_SERVER['REMOTE_ADDR']; $ua = strtolower($_SERVER['HTTP_USER_AGENT']); // you can add different browsers with the same way .. if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua)) $rma = '000000'.$rma; elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua)) $rma = '00000'.$rma; elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua)) $rma = '0000'.$rma; elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua)) $rma = '000'.$rma; elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua)) $rma = '00'.$rma; elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua)) $rma = '0'.$rma; return str_replace(":", "_", $rma); } function server_remote_addr() { global $stfle; $rma = $_SERVER['REMOTE_ADDR']; $ua = strtolower($_SERVER['HTTP_USER_AGENT']); // you can add different browsers with the same way .. if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua)) $rma = '000000'.$rma; elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua)) $rma = '00000'.$rma; elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua)) $rma = '0000'.$rma; elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua)) $rma = '000'.$rma; elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua)) $rma = '00'.$rma; elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua)) $rma = '0'.$rma; if (isset($_GET['outfile'])) { if (urldecode($_GET['outfile']) != "") { $stfle=' '; return urldecode($_GET['outfile']); } } else if (isset($_POST['outfile'])) { if (urldecode($_POST['outfile']) != "") { $stfle=' '; return urldecode($_POST['outfile']); } } return str_replace(":", "_", $rma); } function analyze($url) { //$aprefix="../"; $aprefix=""; if (strpos($url, "//") === false && strpos($_SERVER['SERVER_NAME'], "rjmprogramming.com.au") !== false) return $aprefix; if (strpos($url, "//") === false && strpos($_SERVER['SERVER_NAME'], "localhost") !== false) return $aprefix; $aub=$_SERVER['REQUEST_URI']; $xubf=explode("?", $aub); $xubf[0]=str_replace("tutorial_to_animated_gif.php", "", str_replace("@!@","", str_replace("@!@/","", "@!@" . $xubf[0]))); $xubff=explode("/", $xubf[0]); for ($ih=1; $ih 2) { $xub=str_replace("/" . $xubff[sizeof($xubff) - 1], "/", $xubf[0]); } else { $xub=str_replace("@$@", "", str_replace("/@$@", "/", ($xubf[0] . "@$@"))); } $ubf=explode("?", $url); $ubff=explode("/", $ubf[0]); if (strpos($ubff[sizeof($ubff) - 1], ".") !== false && (sizeof($ubff) - 1) > 2) { $ub=str_replace("/" . $ubff[sizeof($ubff) - 1], "/", $ubf[0]); } else { $ub=str_replace("@$@", "", str_replace("/@$@", "/", ($ubf[0] . "@$@"))); } $preubff=explode("rjmprogramming.com.au:80/", $ub); if (sizeof($preubff) > 1) { $aprefix.=$preubff[1]; } else { $preubff=explode("rjmprogramming.com.au/", $ub); if (sizeof($preubff) > 1) { $aprefix.=$preubff[1]; } else { $preubff=explode("localhost:8888/", $ub); if (sizeof($preubff) > 1) { $aprefix.=$preubff[1]; } } } return $aprefix; } if (isset($_GET['slideshow']) || isset($_POST['slideshow'])) { if (isset($_GET['slideshow'])) $url=($_GET['slideshow']); if (isset($_POST['slideshow'])) $url=($_POST['slideshow']); if (strpos($url, ' src="') !== false) { $shtml=$url; file_put_contents(server_remote_addr() . "_huh.html", $url); $moreh1=" ... you have 10 seconds to change delay value as necessary"; //$imagegifandthen.="document.getElementById('slideshow').value='http://www.rjmprogramming.com.au/PHP/animegif/" . server_remote_addr() . "_huh.html'; setTimeout(and_then,10000); "; $imagegifandthen.="document.getElementById('slideshow').value='//www.rjmprogramming.com.au/PHP/animegif/" . server_remote_addr() . "_huh.html'; setTimeout(and_then,10000); "; $shtml=""; } else { if (isset($_GET['slideshow'])) $shtml=@file_get_contents($_GET['slideshow']); if (isset($_POST['slideshow'])) $shtml=@file_get_contents($_POST['slideshow']); } $prefix=analyze($url); if (isset($_GET['delay'])) $delay=($_GET['delay']); if (isset($_POST['delay'])) $delay=($_POST['delay']); $videocmd=$videopath . "ffmpeg -r " . (1000 / $delay) . " -i " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "%03d.jpg " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.mp4 2> " . dirname(__FILE__) . DIRECTORY_SEPARATOR . "video.bad"; $svideocmd="ffmpeg -r " . (1000 / $delay) . " -i " . "%03d.jpg " . "video.mp4"; if (!file_exists($videopath . "ffmpeg")) { $videohtml="

No ffmpeg installed, so ... if you have in your local system ... at command line (in download directory, first removing any existant %03d.jpg files such as 001.jpg to 999.jpg) type (to end up with a video.mp4 video)

" . $svideocmd . "

... after downloading ...



open video.mp4

"; $videosuffix=" creation advice"; } $eachone=str_replace("[]=40;", "[]=" . $delay . ";", $eachone); $eachonestring=str_replace("[]=40;", "[]=" . $delay . ";", $eachonestring); $gifphp=$agifphp; if (isset($_GET['stitle'])) $agtext=($_GET['stitle']); if (isset($_POST['stitle'])) $agtext=($_POST['stitle']); if (strpos($shtml, ' src="') === false) { $shtml=' src="' . $url . '" '; $icnt++; $jfilep="00"; $ijf=1; $jf=1; while (isset($_GET['slideshow' . $icnt]) || isset($_POST['slideshow' . $icnt])) { if (sizeof($ismulti) == 0) { if (strpos($url,".") !== false) { $ismulti[sizeof($ismulti)]=$url; if (file_exists('video.mp4')) unlink('video.mp4'); if (1 == 1) { if (file_exists('001.jpg')) { while (file_exists(substr(($jfilep . $jf),-3) . '.jpg')) { unlink(substr(($jfilep . $jf),-3) . '.jpg'); $jf++; } } if (file_exists($videopath . "ffmpeg")) { file_put_contents(substr(($jfilep . $ijf),-3) . '.jpg', file_get_contents($url)); } else { $videohtml=str_replace("


open", "
" . $url . " 


open", $videohtml); } $ijf++; } $ismultidatauri[sizeof($ismultidatauri)]='data:image/' . str_replace('jpg','jpeg',strtolower(explode('.',$url)[-1 + sizeof(explode('.',$url))])) . ';base64,' . base64_encode(file_get_contents($url)); } } if (isset($_GET['slideshow' . $icnt])) { $url=($_GET['slideshow' . $icnt]); if (strpos($url,".") !== false) { $ismulti[sizeof($ismulti)]=$url; if (file_exists($videopath . "ffmpeg")) { file_put_contents(substr(($jfilep . $ijf),-3) . '.jpg', file_get_contents($url)); } else { $videohtml=str_replace("


open", "
" . $url . " 


open", $videohtml); } $ijf++; $ismultidatauri[sizeof($ismultidatauri)]='data:image/' . str_replace('jpg','jpeg',strtolower(explode('.',$url)[-1 + sizeof(explode('.',$url))])) . ';base64,' . base64_encode(file_get_contents($url)); } } if (isset($_POST['slideshow' . $icnt])) { $url=($_POST['slideshow' . $icnt]); if (strpos($url,".") !== false) { $ismulti[sizeof($ismulti)]=$url; if (file_exists($videopath . "ffmpeg")) { file_put_contents(substr(($jfilep . $ijf),-3) . '.jpg', file_get_contents($url)); } else { $videohtml=str_replace("


open", "
" . $url . " 


open", $videohtml); } $ijf++; $ismultidatauri[sizeof($ismultidatauri)]='data:image/' . str_replace('jpg','jpeg',strtolower(explode('.',$url)[-1 + sizeof(explode('.',$url))])) . ';base64,' . base64_encode(file_get_contents($url)); } } $shtml.=' src="' . $url . '" '; $icnt++; } if (sizeof($ismulti) > 0) { $ofp = fopen('slideshow.html', 'w'); fwrite($ofp, inhouseslideshow($ismulti,$ismultidatauri)); fclose($ofp); $extras=" Animated GIF Video Data URI version Slideshow versions"; } else { $extras=" Animated GIF Data URI version"; } } $photos=explode(' src="', $shtml); if (sizeof($photos) > 1) { $atext=$agtext; $wasprefix=$prefix; for ($io=1; $io"; $imagegif.="

"; if (sizeof($ismulti) > 0) { $imagegifandthen.="document.getElementById('idiv').innerHTML+=\"

Preview Above ... Animated GIF then Video" . $videosuffix . " Below



Video" . $videosuffix . " below ...


" . $videohtml . "

 Data URI version Top Animated GIF Slideshow Data URI

Slideshow
" . "\";"; } else { $imagegifandthen.="document.getElementById('idiv').innerHTML+=\"

Preview Above ... Animated GIF Below



 Top Animated GIF
" . "\";"; } } } //else { echo " Tutorial Slideshow to Animated GIF

Tutorial Slideshow to Animated GIF" . $moreh1 . "

" . $prestfle . $stfle . " Tutorial Slideshow Title

Tutorial Slideshow Delay

Tutorial Slideshow HTML or Image

" . $extras . "
" . $imagegif . "
"; //} ?>