php 生成缩略图代码
这是一款经典实用的生成小图的php代码,有专业素语来讲就是php 生成缩略图代码,实例代码如下:
- # 显示图形及连接
 - function showdir ($adirectory, $i)
 - {
 - global $browsedir;
 - $start = $i;
 - # 更改 $maxcols 及 $maximages 可改变每一页显示的小图的行数与列数。
 - $maxcols = 2;
 - $maximages = 6;
 - $maximages = $i + ($maximages - 3);
 - # 更改 $imagemaxwidth 及 $imagemaxheight 可改变显示小图的宽度与高度。
 - $imagemaxwidth = 100;
 - $imagemaxheight = 100;
 - # 计算高度与宽度的比例。
 - $imagemaxratio = $imagemaxwidth / $imagemaxheight;
 - $ndirectory = sizeof ($adirectory);
 - echo (table_start);
 - for ($i; $i<=$maximages;)
 - {
 - echo (row_start);
 - for ($icols=1; $icols<=$maxcols; $icols++)
 - {
 - echo (col_start);
 - $imagefilename = $adirectory[++$i];
 - if (strlen($imagefilename)>0)
 - {
 - $imagepath = $browsedir."/".$imagefilename;
 - $imagesize = getimagesize ($imagepath);
 - if ($imagesize)
 - {
 - $imagewidth = $imagesize[0];
 - $imageheight = $imagesize[1];
 - $imageratio = $imagewidth / $imageheight;
 - if ($imageratio > $imagemaxratio)
 - {
 - $imageoutputwidth = $imagemaxwidth;
 - $imageoutputheight = ceil ($imagemaxwidth/$imagewidth*$imageheight);
 - }
 - else if ($imageratio < $imagemaxratio)
 - {
 - $imageoutputheight = $imagemaxheight;
 - $imageoutputwidth = ceil ($imagemaxheight/$imageheight*$imagewidth);
 - } else
 - {
 - $imageoutputwidth = $imagemaxwidth;
 - $imageoutputheight = $imagemaxheight;
 - }
 - # 显示图形
 - echo (a_start.$imagepath.a_close);
 - echo (img_start.$imagepath.img_width.$imageoutputwidth.img_height.$imageoutputheight.img_end);
 - echo (line_break.$adirectory[$i]);
 - echo (a_end);
 - }
 - echo (col_end);
 - }
 - }
 - echo (row_end);
 - }
 - echo (table_end);
 - pagemenu ($browsedir, $ndirectory, $start);
 - }
 - function pagemenu ($browsedir, $ndirectory, $pg) {
 - echo "<br><center><font size="1" color="#000033">page:";
 - $pg_num = 1;
 - //开源代码phpfensi.com
 - for ($img_num = 0; $img_num <= $ndirectory;) {
 - if ($pg == $img_num) {
 - echo "<span class="menulink_1"><a href="thumb.php?browsedir=$browsedir&start=$img_num"> *$pg_num</a> <span>";
 - } else {
 - echo "<span class="menulink_2"><a href="thumb.php?browsedir=$browsedir&start=$img_num"> $pg_num</a> <span>";
 - }
 - # 建立其他页次的连接, 每页显示四张图, 故页数 $pg_num 每加 1 , $img_num 就加 4 。
 - $pg_num = $pg_num + 1;
 - $img_num = $img_num + 4;
 - }
 - echo "</font> ";
 - }
 - function dirtoarray ($browsedir, $extensions)
 - {
 - $nextensions = sizeof ($extensions);
 - $idirectory = 0;
 - $directory = dir($browsedir);
 - while ($entry = $directory->read())
 - {
 - for ($i=1; $i<=$nextensions; $i++)
 - {
 - $compare = stristr ($entry, $extensions[$i]);
 - if (strlen($compare) == strlen($extensions[$i]))
 - {
 - $adirectory[++$idirectory] = $entry;
 - break;
 - }
 - }
 - }
 - $directory->close();
 - return $adirectory;
 - }
 - #主程序
 - #变量 $browsedir 为图形文件放置的位置。
 - $browsedir="./images";
 - # 允许浏览的图形文件扩展名, 放置於数组中, 可自行增加。
 - $extensions[1] = "jpeg";
 - $extensions[2] = "jpg";
 - $extensions[3] = "gif";
 - $extensions[4] = "png";
 - showdir (dirtoarray ($browsedir, $extensions), $start);
 - define ("line_break", "<br>");
 - define ("table_start", "<table width=600> ");
 - define ("table_end", "</table> ");
 - define ("row_start", " <tr> ");
 - define ("row_end", " </tr> ");
 - define ("col_start", " <td align=center> ");
 - define ("col_end", " </td> ");
 - define ("img_start", "<img src=");
 - define ("img_end", ">");
 - define ("img_width", " width=");
 - define ("img_height", " height=");
 - define ("a_start", '<a href="');
 - define ("a_close", '">');
 - define ("a_end", "</a>");