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>");