function createFullImage($origImage, $origWidth, $origHeight, $file)
{
    global $fullWidthMax, $fullHeightMax;
    $scale = min($fullWidthMax / $origWidth, $fullHeightMax / $origHeight, 1);
    $newWidth = $origWidth * $scale;
    $newHeight = $origHeight * $scale;
    imageToFile($origImage, $origWidth, $origHeight, $newWidth, $newHeight, $file);
    logEvent("create-full-image", $origImage, $file, $scale);
}
 function twittercard_load($content)
 {
     global $template, $picture, $page;
     global $twitter_site;
     // get image url
     $query = sprintf('
   select path, name, comment
   FROM ' . IMAGES_TABLE . '
   WHERE id = %s
 ;', $page['image_id']);
     $result = pwg_query($query);
     $row = pwg_db_fetch_assoc($result);
     $url = substr($row['path'], 2);
     $title = str_replace('"', '\\"', $row['name']);
     $description = str_replace('"', '\\"', $row['comment']);
     // Check if folder exists
     $thumbFolder = PHPWG_PLUGINS_PATH . basename(dirname(dirname(__FILE__))) . '/thumbs/' . dirname($url);
     if (!file_exists($thumbFolder)) {
         mkdir($thumbFolder, 0777, true);
     }
     $extension_pos = strrpos($url, '.');
     $thumb = $thumbFolder . "/" . basename(substr($url, 0, $extension_pos)) . '_tw_thumb' . substr($url, $extension_pos);
     $thumbLocal = PHPWG_PLUGINS_PATH . basename(dirname(dirname(__FILE__))) . '/thumbs/' . substr($url, 0, $extension_pos) . '_tw_thumb' . substr($url, $extension_pos);
     // Check if a thumb already exists, otherwise create a thumb
     if (!file_exists($thumb)) {
         /**
          * Create a thumbnail image from $inputFileName no taller or wider than
          * $maxSize. Returns the new image resource or false on error.
          * Author: mthorn.net
          */
         function thumbnail($inputFileName, $maxSize = 100)
         {
             $info = getimagesize($inputFileName);
             $type = isset($info['type']) ? $info['type'] : $info[2];
             // Check support of file type
             if (!(imagetypes() & $type)) {
                 // Server does not support file type
                 return false;
             }
             $width = isset($info['width']) ? $info['width'] : $info[0];
             $height = isset($info['height']) ? $info['height'] : $info[1];
             // Calculate aspect ratio
             $wRatio = $maxSize / $width;
             $hRatio = $maxSize / $height;
             // Using imagecreatefromstring will automatically detect the file type
             $sourceImage = imagecreatefromstring(file_get_contents($inputFileName));
             // Calculate a proportional width and height no larger than the max size.
             if ($width <= $maxSize && $height <= $maxSize) {
                 // Input is smaller than thumbnail, do nothing
                 return $sourceImage;
             } elseif ($wRatio * $height < $maxSize) {
                 // Image is horizontal
                 $tHeight = ceil($wRatio * $height);
                 $tWidth = $maxSize;
             } else {
                 // Image is vertical
                 $tWidth = ceil($hRatio * $width);
                 $tHeight = $maxSize;
             }
             $thumb = imagecreatetruecolor($tWidth, $tHeight);
             if ($sourceImage === false) {
                 // Could not load image
                 return false;
             }
             // Copy resampled makes a smooth thumbnail
             imagecopyresampled($thumb, $sourceImage, 0, 0, 0, 0, $tWidth, $tHeight, $width, $height);
             imagedestroy($sourceImage);
             return $thumb;
         }
         /**
          * Save the image to a file. Type is determined from the extension.
          * $quality is only used for jpegs.
          * Author: mthorn.net
          */
         function imageToFile($im, $fileName, $quality = 80)
         {
             if (!$im || file_exists($fileName)) {
                 return false;
             }
             $ext = strtolower(substr($fileName, strrpos($fileName, '.')));
             switch ($ext) {
                 case '.gif':
                     imagegif($im, $fileName);
                     break;
                 case '.jpg':
                 case '.jpeg':
                     imagejpeg($im, $fileName, $quality);
                     break;
                 case '.png':
                     imagepng($im, $fileName);
                     break;
                 case '.bmp':
                     imagewbmp($im, $fileName);
                     break;
                 default:
                     return false;
             }
             return true;
         }
         $im = thumbnail($url, 435);
         imageToFile($im, $thumb);
     }
     $template->append('head_elements', '
 <meta name="twitter:card" content="summary_large_image">
 <meta name="twitter:title" content="' . $title . '">
 <meta name="twitter:description" content="' . $description . '">
 <meta name="twitter:site" content="' . $twitter_site . '">
 <meta name="twitter:image" content="http://' . $_SERVER['HTTP_HOST'] . substr($_SERVER['REQUEST_URI'], 0, strrpos(substr($_SERVER['REQUEST_URI'], 0, strrpos($_SERVER['REQUEST_URI'], '?')), '/')) . '/' . $thumbLocal . '">');
 }
Beispiel #3
0
     $sImage = $uploaded;
     $info = pathinfo($sImage);
     $ext = $info['extension'];
     // is this a gif or is it a transparent png -- ACP-518
     if ($ext == "gif" || ord(@file_get_contents($sImage, NULL, NULL, 25, 1)) == 6) {
         $gd = FALSE;
     }
     // try to generate thumb if gd is available
     $_SESSION['site_registration']['valid_entries'] = TRUE;
     if ($gd) {
         $im = thumbnail($sImage, 100);
         $info = getimagesize($sImage);
         $mime = image_type_to_mime_type($info[2]);
         header("Content-Type: {$mime}");
         header("Content-Length: " . filesize($sImage));
         imageToFile($im, $sImage . '-temp-thumbnail.' . $ext);
         echo file_get_contents($sImage . '-temp-thumbnail.' . $ext);
         imagedestroy($im);
     } else {
         $info = getimagesize($uploaded);
         $mime = image_type_to_mime_type($info[2]);
         header("Content-Type: {$mime}");
         header("Content-Length: " . filesize($sImage));
         echo file_get_contents($sImage);
     }
     break;
     // ajax check for coppa options
 // ajax check for coppa options
 case 'check_coppa':
     $arr = array();
     $arr['use_coppa'] = $vbulletin->options['usecoppa'];