the ActionScript SlideShow
<? // ----------------------- // buildgallery.php // ----------------------- // by: // Mario - mariohm@fibertel.com.ar // Mike Peck - www.mikecpeck.com // Mike Johnson - mike@solanosystems.com // Christian Machmeier - www.redsplash.de // Airtight - www.airtightinteractive.com // // DESCRIPTION // ----------------------- // This script automatically generates the XML document and thumbnails for SimpleViewer // www.airtightinteractive.com/simpleviewer/ // // TO USE // ----------------------- // Instructions are at: www.airtightinteractive.com/simpleviewer/auto_instructions.html // //Script modifié par rapport à mes besoins. function buildXML(){ if(!isset($options)) $options=""; $options .= '<CHARLIESGALLERY>'; $imagePath = "images/"; // Set showDownloadLinks to true if you want to show a 'Download Image' link as the caption to each image. $showDownloadLinks = false; // set useCopyResized to true if thumbnails are not being created. // This can be due to the imagecopyresampled function being disabled on some servers if(!isset($useCopyResized)) $useCopyResized = false; // Set sortImagesByDate to true to sort by date. Otherwise files are sorted by filename. $sortImagesByDate = true; // Set sortInReverseOrder to true to sort images in reverse order. $sortInReverseOrder = true; // END OF OPTIONS // ----------------------- //print "Creating XML and thumbnails for SimpleViewer.<br>"; //print "-------------------------------------------------<br><br>"; //Get GD imaging library info $tgdInfo = getGDversion(); if ($tgdInfo == 0){ //print "Note: The GD imaging library was not found on this Server. Thumbnails will not be created. Please contact your web server administrator."; } if ($tgdInfo < 2){ //print "Note: The GD imaging library is version ".$tgdInfo." on this server. Thumbnails will be reduced quality. Please contact your web server administrator to upgrade GD version to 2.0.1 or later.<br><br>"; } if ($sortImagesByDate){ //print "Sorting images by date.<br>"; }else{ //print "Sorting images by filename.<br>"; } if ($sortInReverseOrder){ //print "Sorting images in reverse order.<br><br>"; }else{ //print "Sorting images in forward order.<br><br>"; } //loop thru images $xml = $options; $folder = opendir($imagePath); while($file = readdir($folder)) { if ($file[0] != "." && $file[0] != ".." ) { if ($sortImagesByDate){ $files[$file] = filemtime($imagePath."/$file"); }else{ $files[$file] = $file; } } } // now sort by date modified if ($sortInReverseOrder){ arsort($files); }else{ asort($files); } foreach($files as $key => $value) { $xml .= ' <IMAGE '; $xml .= 'nomImage="'.$key.'"'; //add auto captions: 'Image X' /*if ($showDownloadLinks){ $xml .= ' caption="<![CDATA[<A href="images/'.$key.'" target=" _blank"><U>Open image in new window</U></A>]]>"'; }else{ $xml .= ' caption=\'\''; } */ $xml .= ' />'; /*print "- Created Image Entry for: $key<br>"; if (!file_exists("./thumbs/".$key)){ if (createThumb($key)){ print "- Created Thumbnail for: $key<br>"; } } */ } closedir($folder); $xml .= ' </CHARLIESGALLERY>'; //next line can cause erroneous warnings //chmod( 'imageData.xml', 0777 ); $file = "gallery.xml"; if (!$file_handle = fopen($file,"w")) { //print "<br>Cannot open XML document: $file<br>"; } elseif (!fwrite($file_handle, $xml)) { //print "<br>Cannot write to XML document: $file<br>"; }else{ //print "<br>Successfully created XML document: $file<br>"; } fclose($file_handle); } // }}} // {{{ createThumb() /** * Create a squared thumbnail from an existing image. * * @param string $file Location and name where the file is stored . * @return boolean * @access public * @author Christian Machmeier */ function createThumb($fileName) { // Get information about the installed GD. $gdVersion = getGDversion(); if ($gdVersion == false) { return false; } $file = 'images/'.$fileName; $fileDest = 'thumbs/'.$fileName; // Get the image dimensions. $dimensions = @getimagesize($file); $width = $dimensions[0]; $height = $dimensions[1]; $outputX = 45; $outputY = 45; $quality = 85; // The image is of vertical shape. if ($width < $height) { $deltaX = 0; $deltaY = ($height - $width) / 2; $portionX = $width; $portionY = $width; // The image is of horizontal shape. } else if ($width > $height) { $deltaX = ($width - $height) / 2; $deltaY = 0; $portionX = $height; $portionY = $height; // The image is of squared shape. } else { $deltaX = 0; $deltaY = 0; $portionX = $width; $portionY = $height; } $imageSrc = @imagecreatefromjpeg($file); // The thumbnail creation with GD1.x functions does the job. if ($gdVersion < 2 || $useCopyResized) { // Create an empty thumbnail image. $imageDest = @imagecreate($outputX, $outputY); // Try to create the thumbnail from the source image. if (@imagecopyresized($imageDest, $imageSrc, 0, 0, $deltaX, $deltaY, $outputX, $outputY, $portionX, $portionY)) { // save the thumbnail image into a file. @imagejpeg($imageDest, $fileDest, $quality); // Delete both image resources. @imagedestroy($imageSrc); @imagedestroy($imageDest); return true; } } else { // The recommended approach is the usage of the GD2.x functions. // Create an empty thumbnail image. $imageDest = @imagecreatetruecolor($outputX, $outputY); // Try to create the thumbnail from the source image. if (@imagecopyresampled($imageDest, $imageSrc, 0, 0, $deltaX, $deltaY, $outputX, $outputY, $portionX, $portionY)) { // save the thumbnail image into a file. @imagejpeg($imageDest, $fileDest, $quality); // Delete both image resources. @imagedestroy($imageSrc); @imagedestroy($imageDest); return true; } } return false; } function getGDversion() { static $gd_version_number = null; if ($gd_version_number === null) { // Use output buffering to get results from phpinfo() // without disturbing the page we're in. Output // buffering is "stackable" so we don't even have to // worry about previous or encompassing buffering. ob_start(); phpinfo(8); $module_info = ob_get_contents(); ob_end_clean(); if (preg_match("/\bgd\s+version\b[^\d ]+?([\d\.]+)/i", $module_info,$matches)) { $gd_version_number = $matches[1]; } else { $gd_version_number = 0; } } return $gd_version_number; } ?>
Le fichier XML géneré
<CHARLIESGALLERY> <IMAGE nomImage="IMG_0842.jpg" /> <IMAGE nomImage="IMG_0903.jpg" /> <IMAGE nomImage="IMG_1431.jpg" /> <IMAGE nomImage="IMG_1430.jpg" /> <IMAGE nomImage="IMG_1429.jpg" /> <IMAGE nomImage="IMG_1428.jpg" /> <IMAGE nomImage="IMG_1427.jpg" /> <IMAGE nomImage="IMG_0909.jpg" /> <IMAGE nomImage="IMG_0904.jpg" /> </CHARLIESGALLERY>