+ /* Resize the thumbnail image to the size indicated by our album */
+ $debugString="";
+ list ($ret, $toolkit) = GalleryCoreApi::getToolkitByOperation($mimeType, 'resize');
+ if (!$ret) {
+ $debugString.="Checking to see if a toolkit that can resize images was found. <br>";
+ if (isset($toolkit)) {
+ $newTmpFile = $platform->tempnam($tmpDir, 'add');
+ $newTmpFile.= ".jpg";
+ $thumbnailSize = 150;
+ list ($ret, $preferences) =
+ GalleryCoreApi::fetchDerivativePreferencesForItem($item->getId());
+ if(!$ret) {
+ foreach ($preferences as $preference) {
+ if (preg_match('/thumbnail\|(\d+)/',
+ $preference['derivativeOperations'], $matches)) {
+ $thumbnailSize = $matches[1];
+ $debugString.="Found thumbnail size in album preferences: $thumbnailSize <br>";
+ break;
+ }
+ }
+ }
+
+ // Obtain the width and height of the original thumbnail, finding out it's ratio,
+ // and using that ratio when determining the width of the video below.
+ // Example: youtube: 130x97 google: 160x120 metacafe: 90x76 yahoo: 100x70
+ // Set the thumbnailHeight to the current thumbnailSize
+ // Set the thumbnailWidth to the appropriate size based on the thumbnailHeight * ratio
+ $image_data = @getimagesize($tmpFile);
+ if(!$image_data) {
+ return array(GalleryCoreApi::error(ERROR_STORAGE_FAILURE,__FILE__,__LINE__,
+ "Unable to retrieve thumbnail dimensions for: $tmpFile"),null,null);
+ }
+ $ratio = $image_data[0] / $image_data[1];
+ $debugString.="Using ratio from original thumbnail of $ratio. ";
+ $thumbnailHeight=$thumbnailSize;
+ $thumbnailWidth=round($thumbnailHeight * $ratio);
+ $debugString.="Resizing thumbnail image to $thumbnailWidth x $thumbnailHeight: $tmpFile -> $newTmpFile <br>";
+ $toolkit->performOperation($mimeType, 'resize', $tmpFile, $newTmpFile,
+ array($thumbnailWidth,$thumbnailHeight));
+ }
+ }
+ if(!strcmp($debugOutput,"true")) {
+ print "<h2>Thumbnail Resize</h2>";
+ print "$debugString";
+ print "<hr>";
+ }
+