php生成小图_php 生成缩略图代码

 更新时间:2016年11月25日 16:58  点击:1290
这是一款经典实用的生成小图的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 face="verdana, arial, helvetica, sans-serif" size="1" color="#000033">page:";

$pg_num = 1;

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

本程序是根据用户提供的数据生成3D效果的百分比图片统计效果有一点像中国站长

$image = imagecreatetruecolor(200,200);  //创建一张200*200的画布;

 代码如下 复制代码

//创建多种又区分的颜色
$red = imagecolorallocate($image,255,0,0);
$blue  = imagecolorallocate($image,0,0,255);
$yellow = imagecolorallocate($image,255,255,0);
$violet = imagecolorallocate($image,255,0,255);
$white = imagecolorallocate($image,255,255,255);
$black = imagecolorallocate($image,0,0,0);


//使用for循环创建3d效果底层效果
for($i=120;$i>100;$i--){
    imagefilledarc($image,100,$i,200,120,0,30,$red,img_arc_pie);//img_arc_pie注释如下:

    imagefilledarc($image,100,$i,200,120,30,80,$blue,img_arc_pie);
    imagefilledarc($image,100,$i,200,120,80,360,$yellow,img_arc_pie);
}
//bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style )
//
//imagefilledarc() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)画一椭圆弧。如果成功则返回 true,失败则返回 false。w 和 h 分别指定了椭圆的宽和高,s 和 e 参数以角度指定了起始和结束点。style 可以是下列值按位或(or)后的值:
//
//img_arc_pie
//
//img_arc_chord
//
//img_arc_nofill
//
//img_arc_edged


//这个层是最上面一层的效果,这样立体效果就出来了!
    imagearc($image,100,100,200,120,0,360,$black);//添加一个黑色的边圈,这样3d效果看起来更加明显点
    imagefilledarc($image,100,100,200,120,0,30,$red,img_arc_pie);
    imagefilledarc($image,100,100,200,120,30,80,$blue,img_arc_pie);
    imagefilledarc($image,100,100,200,120,80,360,$yellow,img_arc_pie);

//添加百分比数据,当然此处必要的时候可以批量的进行一定的运算将输入输入到图片上
    $str = iconv ("gbk","utf-8","36%");//如果要输入中文需要此转换。example:占用:30%;
    imagettftext($image,10,360-15,100+70,115,$white,"simhei.ttf",$str);

 

imagejpeg($image);
imagedestroy($image);

 

这是一款简单实用的php验证码生成程序了,主要是利用了php gd库来生成图形验证码,并且保存到session中,生成的代码是利用rand随机生成的。
 代码如下 复制代码

session_start();
$im=imagecreatetruecolor(100,30);
//分配颜色
$bg=imagecolorallocate($im,0,0,0);
$textcolor=imagecolorallocate($im,255,255,255);
//在图片上划线
for($i=0;$i<3;$i++){

$te1 = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline($im,0,rand(0,15),100,rand(0,15),$te1);
}
//在图片上打印200个点
for($i=0;$i<200;$i++){

 imagesetpixel($im,rand()%100,rand()%30,$te1);
}
for($i=0;$i<4;$i++){
 //dechex()把十进制转换成十六进制
 $rand.= dechex(rand(1,15));
}
$_session[check_pic]=$rand;
imagestring($im,5,rand(3,70),rand(3,15),$rand,$textcolor);
header("content-type:image/jpeg");
imagejpeg($im);

/*
生成验证的作用是防止用户乱注册了,这是一等的验证程序
*/

这款php图片生成教程是一款从生成一个简单的图像到生成复杂的图形的php教程,下面就来看简单到复杂有12个生成图像实例。

1 生成一个简单图像。
2 设定图像的颜色。
3 在图像上绘制直线。
4 在图像上显示文字。
5 在图像中显示中文字符。
6 打开已存在的图片。
7 获取图片的相关属性。
8 函数getimagesize()的用法。
9 为上传图片添加水印效果。
10 生成已有图片的缩略图。
11 使用函数imagecopyresampled()。
12 生成带有底纹的数字验证码图片的php程序。

*/

//1 生成一个简单图像。

 代码如下 复制代码

$width = 200;
$height =200;

$img =  imagecreatetruecolor($width,$height) or die("不支持gd图像处理");
imagepng($img);
imagedestroy($img);

//2 设定图像的颜色。

 代码如下 复制代码

$width = 200;
$height =200;

$img =  imagecreatetruecolor($width,$height) or die("不支持gd图像处理");

$bg_color = imagecolorallocate($img, 255, 0, 0);
imagefill($img, 0, 0, $bg_color);

imagepng($img);
imagedestroy($img);

//3 在图像上绘制直线。

 代码如下 复制代码

$width = 200;
$height =300;

$img =  imagecreatetruecolor($width,$height) or die("不支持gd图像处理");

$line_color = imagecolorallocate($img, 255, 255, 255);
imageline($img,0,40,200,40,$line_color);
imageline($img,0,260,200,260,$line_color);

imagepng($img);
imagedestroy($img);

//4 在图像上显示文字。

 代码如下 复制代码

$width = 200;
$height =300;

$img =  imagecreatetruecolor($width,$height) or die("不支持gd图像处理");
$line_color = imagecolorallocate($img, 255, 255, 255);

imageline($img, 0, 40, 200, 40, $line_color);
imageline($img, 0, 260, 200, 260, $line_color);
imagestring($img, 5, 0, 60, "it's time to learn php!", $line_color);

imagepng($img);
imagedestroy($img);

//5 在图像中显示中文字符。

 代码如下 复制代码

$width = 200;
$height =300;

$img =  imagecreatetruecolor($width,$height) or die("不支持gd图像处理");
$line_color = imagecolorallocate($img, 255, 255, 255);
$font_type ="c://windows//fonts//simli.ttf";    //获取truetype字体,采用隶书字体

//“西游记”3个字16进制字符
$cn_char1 = chr(0xe8).chr(0xa5).chr(0xbf);
$cn_char2 = chr(0xe6).chr(0xb8).chr(0xb8);
$cn_char3 = chr(0xe8).chr(0xae).chr(0xb0);

//“吴承恩著”4个字16进制字符
$cn_str = chr(0xe5).chr(0x90).chr(0xb4).chr(0xe6).chr(0x89).chr(0xbf).chr(0xe6).chr(0x81).chr(0xa9);
$cn_str .= " ".chr(0xe8).chr(0x91).chr(0x97);

imageline($img, 0, 40, 200, 40, $line_color);
imageline($img, 0, 260, 200, 260, $line_color);

//竖排显示“西游记”3字
imagettftext($img, 30, 0, 10, 80, $line_color, $font_type,$cn_char1);
imagettftext($img, 30, 0, 10, 120, $line_color, $font_type,$cn_char2);
imagettftext($img, 30, 0, 10, 160, $line_color, $font_type,$cn_char3);

//横排显示“吴承恩著”4字
imagettftext($img, 15, 0, 90, 254, $line_color, $font_type,$cn_str);

imagepng($img);
imagedestroy($img);

//6 打开已存在的图片。
$img=imagecreatefromjpeg("tower.jpg");

imagejpeg($img);
imagedestroy($img);

//7 获取图片的相关属性。
$img=imagecreatefromjpeg("tower.jpg");

$x = imagesx($img);
$y = imagesy($img);
echo "图片tower.jpg的宽为:<b>$x</b> pixels";
echo "<br/>";
echo "<br/>";
echo "图片tower.jpg的高为:<b>$y</b> pixels";

//8 函数getimagesize()的用法。
$img_info=getimagesize("tower.jpg");

for($i=0; $i<4; ++$i)
{
    echo $img_info[$i];
    echo "<br/>";
}

?>

这是一款利用php自带的功能把指定的大图生成我们指定大小的缩略图代码哦,使用方便简单,只要把设置下面四个参数就可以生成自己想的大小的缩略图哦。

 代码如下 复制代码

function bigtosmallimg($file,$path,$w=120,$h=90)
{
 $img=$path.$file;
 $imgarr=getimagesize($img);
 $sw=$imgarr[0];//原图宽
 $sh=$imgarr[1];//原图高
 $stype=$imgarr[2];
 //按比例缩放
 if($sw/$sh>$w/$h){
  $mw=$w;
  $mh=(int)$sh*($w/$sw);
 }
 else{
  $mw=(int)$sw*($h/$sh);
  $mh=$h;
 }

 switch($stype){//根据上传好的图形文件类型新建一个用来生成缩略图的源文件。
   case 1:
    $srcf = imagecreatefromgif($img);
    break;
   case 2:
    $srcf = imagecreatefromjpeg($img);
    break;
   case 3:
    $srcf = imagecreatefrompng($img);
    break;
   default:
    showmsg('程序调用错误。');
    break;
 }

 $desf =imagecreatetruecolor($mw,$mh);

 imagecopyresampled($desf,$srcf,0,0,0,0,$mw,$mh,$sw,$sh);
 $sm_name=$path."s_".$file;
 switch($stype){
  case 1:
   imagegif($desf,$sm_name);
   break;
  case 2:
   imagejpeg($desf,$sm_name);
   break;
  case 3:
   imagepng($desf,$sm_name);
   break;
  default:
   showmsg('无法生成www.111cn.net' . $stype . '的缩略图。');
   break;
 }
 imagedestroy($desf);
 imagedestroy($srcf);

}

//此缩略图调用方法

 代码如下 复制代码

bigtosmallimg($file,$path,$w=120,$h=90);
/*

$file = 图片的路径
$path = 生成后保存的路径
$w =图片宽度
$h =图片高度
*/

[!--infotagslink--]

相关文章

  • php二维码生成

    本文介绍两种使用 php 生成二维码的方法。 (1)利用google生成二维码的开放接口,代码如下: /** * google api 二维码生成【QRcode可以存储最多4296个字母数字类型的任意文本,具体可以查看二维码数据格式】 * @param strin...2015-10-21
  • Java生成随机姓名、性别和年龄的实现示例

    这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
  • C#生成随机数功能示例

    这篇文章主要介绍了C#生成随机数功能,涉及C#数学运算与字符串操作相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • jQuery为动态生成的select元素添加事件的方法

    下面小编就为大家带来一篇jQuery为动态生成的select元素添加事件的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-09-01
  • PHP自动生成后台导航网址的最佳方法

    经常制作开发不同的网站的后台,写过很多种不同的后台导航写法。 最终积累了这种最写法,算是最好的吧...2013-09-29
  • php生成唯一数字id的方法汇总

    关于生成唯一数字ID的问题,是不是需要使用rand生成一个随机数,然后去数据库查询是否有这个数呢?感觉这样的话有点费时间,有没有其他方法呢?当然不是,其实有两种方法可以解决。 1. 如果你只用php而不用数据库的话,那时间戳+随...2015-11-24
  • js生成随机数的方法实例

    js生成随机数主要用到了内置的Math对象的random()方法。用法如:Math.random()。它返回的是一个 0 ~ 1 之间的随机数。有了这么一个方法,那生成任意随机数就好理解了。比如实际中我们可能会有如下的需要: (1)生成一个 0 - 1...2015-10-21
  • c#生成高清缩略图的二个示例分享

    这篇文章主要介绍了c#生成高清缩略图的二个示例,需要的朋友可以参考下...2020-06-25
  • PHP验证码生成与验证例子

    验证码是一个现在WEB2.0中常见的一个功能了,像注册、登录又或者是留言页面,都需要注册码来验证当前操作者的合法性,我们会看到有些网站没有验证码,但那是更高级的验证了,...2016-11-25
  • PHP生成不同颜色、不同大小的tag标签函数

    复制代码 代码如下:function getTagStyle(){ $minFontSize=8; //最小字体大小,可根据需要自行更改 $maxFontSize=18; //最大字体大小,可根据需要自行更改 return 'font-size:'.($minFontSize+lcg_value()*(abs($maxFo...2013-10-04
  • php中利用str_pad函数生成数字递增形式的产品编号

    解决办法:$str=”QB”.str_pad(($maxid[0]["max(id)"]+1),5,”0″,STR_PAD_LEFT ); 其中$maxid[0]["max(id)"]+1) 是利用max函数从数据库中找也ID最大的一个值, ID为主键,不会重复。 str_pad() 函数把字符串填充为指...2013-10-04
  • JS生成某个范围的随机数【四种情况详解】

    下面小编就为大家带来一篇JS生成某个范围的随机数【四种情况详解】。小编觉得挺不错的,现在分享给大家,也给大家做个参考,一起跟随小编过来看看吧...2016-04-22
  • C#生成Word文档代码示例

    这篇文章主要介绍了C#生成Word文档代码示例,本文直接给出代码实例,需要的朋友可以参考下...2020-06-25
  • Vue组件文档生成工具库的方法

    本文主要介绍了Vue组件文档生成工具库的方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-11
  • PHP简单实现生成txt文件到指定目录的方法

    这篇文章主要介绍了PHP简单实现生成txt文件到指定目录的方法,简单对比分析了PHP中fwrite及file_put_contents等函数的使用方法,需要的朋友可以参考下...2016-04-28
  • PHP批量生成图片缩略图(1/5)

    这款批量生成缩略图代码可以生成指定大小的小图哦,并且支持文件批量上传。 这款教程会用到php文件 view.php config.php funs.php index.php 功能: -------...2016-11-25
  • C#实现为一张大尺寸图片创建缩略图的方法

    这篇文章主要介绍了C#实现为一张大尺寸图片创建缩略图的方法,涉及C#创建缩略图的相关图片操作技巧,需要的朋友可以参考下...2020-06-25
  • 史上最简洁C# 生成条形码图片思路及示例分享

    这篇文章主要介绍了史上最简洁C# 生成条形码图片思路及示例分享,需要的朋友可以参考下...2020-06-25
  • php 上传文件并生成缩略图代码

    if( isset($_FILES['upImg']) ) { if( $userGroup[$loginArr['group']]['upload'] == 0 ) { echo '{"error":"您所在的用户组无权上传图片!"}'; } else...2016-11-25
  • 简单入门级php 生成xml文档代码

    $doc = new domdocument('1.0'); // we want a nice output $doc->formatoutput = true; 代码如下 复制代码 $root = $doc->createelement('bo...2016-11-25