1

我已经创建了一个页面来上传存储在本地名为upload的文件夹中的图像,我也将其作为列表但如何将其作为缩略图(具有固定像素)?现在发生了什么,它只是用自己大小的像素(一些大的和一些小的)查看。

我的代码如下:

<?php
// open this directory 
$myDirectory = opendir("upload");

// get each entry
while($entryName = readdir($myDirectory)) {
$dirArray[] = $entryName;
}

// close directory
closedir($myDirectory);

//count elements in array
$indexCount = count($dirArray);
?>      

<ul>
<?php
// loop through the array of files and print them all in a list
for($index=0; $index < $indexCount; $index++) {
$extension = substr($dirArray[$index], -3);
if ($extension == 'jpg'){ // list only jpgs
echo '<li><img src="upload/' . $dirArray[$index] . '" alt="Image" /><span>' . $dirArray[$index] . '</span>';
        }   
    }
?>
</ul>
4

3 回答 3

3

您需要使用GD图像函数库编译 PHP 才能工作。要 on 只需删除 php.ini中的;之前extension=php_gd.dll

这里How to create thumbnails with PHP and gd是一个很好的解释性好的教程

于 2012-09-15T17:49:40.420 回答
1

有一个名为的类class.upload.php,它是在 php 中处理图像的一个了不起的类:

http://www.verot.net/php_class_upload_samples.htm

它不仅可以通过许多选项创建您需要的缩略图,还可以对您的图像进行数十种其他操作。

如果您想了解如何创建缩略图,请查看此链接:

http://davidwalsh.name/create-image-thumbnail-php

但是如果你打算在你的网页制作中使用它,那么将它包含class.upload.php在你的核心中并使用它将是一个不错的选择......

于 2012-09-15T18:02:37.673 回答
0

用于调整图像大小的简单代码..您可以使用您想要的任何高度/宽度。例如,将它们设置为 150x150 的缩略图...

function getExtension($str) {

             $i = strrpos($str,".");
             if (!$i) { return ""; } 

             $l = strlen($str) - $i;
             $ext = substr($str,$i+1,$l);
             return $ext;
     }
            $extension = getExtension($filename);
            $extension = strtolower($extension);
            if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif")) {
            echo ' Unknown Image extension ';
            $errors=1;
            }
            if($extension=="jpg" || $extension=="jpeg" ){
            $uploadedfile = $_FILES['form_file']['tmp_name'];
            $src = imagecreatefromjpeg($uploadedfile);
    }
    else if($extension=="png")
    {
    $uploadedfile = $_FILES['form_file']['tmp_name'];
    $src = imagecreatefrompng($uploadedfile);
    }
    else 
    {
    $src = imagecreatefromgif($uploadedfile);
    }
            list($width,$height)=getimagesize($uploadedfile);
            // Set Height and Width Here
            $newwidth=150;
            $newheight=150;
            $tmp=imagecreatetruecolor($newwidth,$newheight);
            imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);  
                    // Set the path here
            $filename = "../uploads/thumbs/". $_FILES['form_file']['name'];
            imagejpeg($tmp,$filename,100);
            imagedestroy($src);
            imagedestroy($tmp);
                }
于 2012-09-15T18:53:15.680 回答