显示缩略图图像的代码

时间:2012-05-07 02:16:02

标签: php javascript html

我有一个简单的PHP脚本,可以让用户在服务器上上传图像。我正在帮助我们在HTMl页面中以缩略图的形式显示这些图像,然后让用户点击这些缩略图,然后原始图片显示在新页面中。

我可以直接使用HTML吗?或者我需要一些javascript或PHP变种的组合吗?

我知道在stackoverflow上有很多关于这个问题的问题,我已经尝试过了,但是我所追求的并不是什么。

我最喜欢在“飞行”上创建缩略图,而不是我个人在用户上传图像时必须创建每个缩略图。

基本上我应该用什么语言来做这个?如果可能的话,我也可以有一些源代码吗?

感谢

3 个答案:

答案 0 :(得分:0)

每次请求缩略图都是一个非常糟糕的想法 - 它需要很多的处理能力,这可以通过在第一次创建时保持它们来轻松保存。我建议将缩略图创建放在处理文件上传的php脚本中,以便同时将图像及其缩略图保存到磁盘。您也可以将缩略图保留在内存中,或者等到第一次请求创建它时,但无论哪种方式,每次请求时都无法重新生成缩略图。

通过简单地设置宽度和/或高度属性,可以使用html来更改图像的大小:

<img src='foo.jpg' alt='foo' width='500' height='300'/>

但是,如果您不确定用户以后是否想要查看完整尺寸的图像,那么这是一个坏主意。原因是缩略图的文件大小比完整图像小:如果客户端只想查看缩略图,那么您不想浪费带宽(=您的钱和客户的时间)向他们发送完整的图像。 / p>

至于你的界面,你不需要javascript来完成它,只需要html。但是,您需要一个服务器端脚本来创建html页面链接到的缩略图。

答案 1 :(得分:0)

那里有很多php缩略图脚本。

您使用重写器仍然显示原始路径,但服务器是php缩略图版本。或者您必须将网址更改为:

<img src="thumb.php?file=path/to/picture.jpg&size=128" />

Mighty Stuff

phpThumb

就是这两个。最好配置为使用缓存的文件夹。我在工作时使用第一个脚本的修改版本。

答案 2 :(得分:0)

这是一个可以构建app的PHP脚本,只适用于jpg图像。

它将扫描一个目录,将图像标准化为一个合适的尺寸,并在飞行中制作一个拇指,然后在下一次刷新时,它不需要重新处理图像,因为它已经存在于拇指目录中。希望它有所帮助...

脚本放置

Root>
    thisscript.php
    /images/
           someimage.jpg
           someimage2.jpg

thisscript.php

<?php
// config section
$path = "./images/";
$thpath = $path."thumbs/";
// end configration

// Open the directory
$do = dir($path);
// now check if the thumb dir is available if not, create it!!
if (!is_dir($thpath)){
    mkdir($thpath);
}

$output = '<div>';
while (($file = $do->read()) !== false){
    if (is_dir($path.$file)){
        continue;
    }else{
        $info = pathinfo($path.$file);
        $fileext = $info['extension'];
        if (strtolower($fileext) == 'jpg'){
            if (!is_file($thpath.$file)){           
                //Normalize Super lrg Image to 750x550          
                thumb_it($path, $file, $path,750,550,99);
                //Make Thumb 200x125
                thumb_it($path, $file, $thpath,200,125,99);

                $output .='<p><a href="'.$path.$file.'"><img src="'.$thpath.$file.'" title="" alt="" /></a></p>';
            }else{

                $output .='<p><a href="'.$path.$file.'"><img src="'.$thpath.$file.'" title="" alt="" /></a></p>';
            }
        }
    }
}
$output .='</div>';

echo $output;

//Functions
function thumb_it($dirn, $file, $thumbdir,$rwidth,$rheight,$quality){
    set_time_limit(0);

    $filename = $dirn.$file;
    $thfilename = $thumbdir.preg_replace('/[^a-zA-Z0-9.-]/s', '_', $file);
    // get the filename and the thumbernail directory
    if (is_file($filename)){
        // create the thumbernail from the original picture
        $im = @ImageCreateFromJPEG($filename);
        if($im==false){return false;}
        $width = ImageSx($im); // Original picture width is stored
        $height = ImageSy($im); // Original picture height is stored

        if (($width < $rwidth) && ($height < $rheight)){
            $n_height = $height;
            $n_width = $width;
        }else{
            // saveing the aspect ratio
            $aspect_x = $width / $rwidth;
            $aspect_y = $height / $rheight;

            if ($aspect_x > $aspect_y){
                $n_width = $rwidth;
                $n_height = $height / $aspect_x;

            }else{
                $n_height = $rheight;
                $n_width = $width / $aspect_y;
            }
        }

        $newimage = imagecreatetruecolor($n_width, $n_height);
        // resizing the picture
        imageCopyResized($newimage, $im, 0, 0, 0, 0, $n_width, $n_height, $width, $height);
        // writing to file the thumbnail
        if(file_exists($thfilename)){chmod($thfilename, 0777);}
        Imagejpeg($newimage, $thfilename, $quality);
        imagedestroy($newimage);
        imagedestroy($im);
    }
}
?>