【问题标题】:Minigal Nano 0.3.6 thumbnails not generatingMinigal Nano 0.3.6 缩略图未生成
【发布时间】:2013-03-13 21:45:38
【问题描述】:

我正在使用 minigal nano 0.3.6,我将图像放在照片目录中。未生成缩略图。但是,当我单击损坏的图像或缩略图时,图像本身在灯箱中打开就好了。以下是生成缩略图的代码:

此脚本和包含的文件受知识共享 (http://creativecommons.org/licenses/by-sa/2.5/) 的许可 您可以使用、编辑和重新分发此脚本,只要您通过不删除指向 www.minigal.dk 的链接(“Powered by MiniGal Nano x.x.x”)来向原作者致敬

MiniGal Nano 由 Thomas Rybak 创建

Thomas Rybak 2010 年版权所有 支持:www.minigal.dk 社区:www.minigal.dk/forum

请享受这个免费脚本!

使用示例: 文件:createthumb.php 例子: */ // error_reporting(E_ALL);

if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) header('Content-type: image/jpeg'); if (preg_match("/.gif$/i", $_GET['filename'])) header('Content-type: image/gif'); if (preg_match("/.png$/i", $_GET['filename'])) header('Content-type: image/png');

// Display error image if file isn't found
if (!is_file($_GET['filename'])) {
    header('Content-type: image/jpeg');
    $errorimage = ImageCreateFromJPEG('images/questionmark.jpg');
    ImageJPEG($errorimage,null,90);
}

// Display error image if file exists, but can't be opened
if (substr(decoct(fileperms($_GET['filename'])), -1, strlen(fileperms($_GET['filename']))) < 4 OR substr(decoct(fileperms($_GET['filename'])), -3,1) < 4) {
    header('Content-type: image/jpeg');
    $errorimage = ImageCreateFromJPEG('images/cannotopen.jpg');
    ImageJPEG($errorimage,null,90);
}

// Define variables
$target = "";
$xoord = 0;
$yoord = 0;

if ($_GET['size'] == "") $_GET['size'] = 120; //
   $imgsize = GetImageSize($_GET['filename']);
   $width = $imgsize[0];
   $height = $imgsize[1];
  if ($width > $height) { // If the width is greater than the height it’s a horizontal picture
    $xoord = ceil(($width-$height)/2);
    $width = $height;      // Then we read a square frame that  equals the width
  } else {
    $yoord = ceil(($height-$width)/2);
    $height = $width;
  }

// Rotate JPG pictures
if (preg_match("/.jpg$|.jpeg$/i", $_GET['filename'])) {
    if (function_exists('exif_read_data') && function_exists('imagerotate')) {
        $exif = exif_read_data($_GET['filename']);
        $ort = $exif['IFD0']['Orientation'];
        $degrees = 0;
        switch($ort)
        {
            case 6: // 90 rotate right
                $degrees = 270;
            break;
            case 8:    // 90 rotate left
                $degrees = 90;
            break;
        }
        if ($degrees != 0)  $target = imagerotate($target, $degrees, 0);
    }
}

     $target = ImageCreatetruecolor($_GET['size'],$_GET['size']);
     if (preg_match("/.jpg$/i", $_GET['filename'])) $source = ImageCreateFromJPEG($_GET['filename']);
     if (preg_match("/.gif$/i", $_GET['filename'])) $source = ImageCreateFromGIF($_GET['filename']);
     if (preg_match("/.png$/i", $_GET['filename'])) $source = ImageCreateFromPNG($_GET['filename']);
     imagecopyresampled($target,$source,0,0,$xoord,$yoord,$_GET['size'],$_GET['size'],$width,$height);
     imagedestroy($source);

     if (preg_match("/.jpg$/i", $_GET['filename'])) ImageJPEG($target,null,90);
     if (preg_match("/.gif$/i", $_GET['filename'])) ImageGIF($target,null,90);
     if (preg_match("/.png$/i", $_GET['filename'])) ImageJPEG($target,null,90); // Using ImageJPEG on purpose
     imagedestroy($target);

?>

【问题讨论】:

    标签: php gallery thumbnails


    【解决方案1】:

    该错误与图片中包含的 EXIF 数据有关。我有同样的问题(使用佳能相机)。希望这对你仍然有帮助。只需转到如下所示的行:

    $exif = exif_read_data($_GET['filename']);
    

    将其更改为以下内容:

    $exif = @exif_read_data($_GET['filename']);
    

    错误图像应该会消失,而您的缩略图应该会出现。

    【讨论】:

      猜你喜欢
      • 2013-11-23
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 2020-01-30
      • 2012-09-01
      • 1970-01-01
      相关资源
      最近更新 更多