电脑安全

您当前的位置:主页 > 电脑安全 >

php生成缩略图-网络编程

来源:[db:来源]标题:   函数    编辑:电脑技术全能网 时间:2019-09-22 18:29

原标题:php生成缩略图-网络编程
   主动微缩图的天生因为图片的数据量比拟大,通报进程绝对较长,以是在用户扫瞄图片时,经常盼望先表现一个图片的缩略图。固然在HTML中能够经过指定图片的宽度和高度来随便缩放图片,然而这类方式不会增加图片的像素数量。图形文件的尺寸没有转变,固然也不会放慢图片下载的速率了。当然也能够手动经过图形软件天生图片的缩略图,但关于大批的图片展现来讲,这个任务量将非常宏大。为此微缩图的主动天生顺序就被计划进去了。PHP中供给的imagecopyresized函数便可以用来天生真正的缩赂图片。该函数的标推语法以下:语法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,int srcX,int srcY,int dstW,int dstH,int srcW,int srcH);前往值:整数函数品种:图形处置内容阐明:本函数可复制新图,偏重新调剂图片的巨细尺寸。参数都是目标在前,来源在后。参数dst im及src_im为图片的handle。参数dstX、dstY、srcX、srcY分辨为目标及起源的坐标。参数dstW、dstH、srcW、srcH分辨为起源及目标的宽及高,欲调剂的新图的尺寸就在这儿设置。上面举个例子来讲明这个函数的用法,对应的顺序thumb.php如顺序清单12—5所示。顺序清单12—5thumb.php<?// 本函数从源文件掏出图象,设定成指定巨细,并输入到目标文件// 源文件格局:gif,jpg,png// 目标文件格局:gif// $srcFile:源文件// $dstFile: 目的文件// $dstW:目的图片宽度// $dstH:目的文件高度function makethumb($srcFile,$dstFile,$dstW,$dstH){$data = GetImageSize($srcFile,&$info);switch ($data[2]){case 1: $imgsrc = @ImageCreateFromGIF($srcFile); break;case 2: $imgsrc = @ImageCreateFromJPEG($srcFile); break;case 3: $imgsrc = @ImageCreateFromPNG($srcFile); break;}$srcW = ImageSX($imgsrc);$srcH = ImageSY($imgsrc);$ni = ImageCreate($dstW,$dstH);ImageCopyResized($ni,$imgsrc,0,0,0,0,$dstW,$dstH,$srcW,$srcH);Imagegif($ni,$dstFile);// 假如须要输入到扫瞄器,那末将上一句改成 ImageJpeg($ni);// 假如须要其余格局的图片,修改最初一句便可以了}?>在这个例子中,起首经过getimagesize()函数取得源图片的情形,再用 imagecreatefromgif()、imagecreatefromjpeg()或imagecreatefrompng()创立一个源位图$imgsrc,而后用imagecreate()函数创立一个目的位图,其长、宽各是源位图的一半。而后挪用imagecopyresized()函数,将源位图减少后拷贝到目的位图中,最初再用imagegif()函数天生缩略图。这里所用到的图形处置函数就是由装置的GD库供给的,现对其分辨停止阐明。起首先容getimagesize()函数,其尺度语法以下。语法:array getimagesize(string filename,array [imageinfo]);前往值:数组函数品种:图形处置内容阐明:本函数可用来获得GIF、JPEG及PNG3种WWW上图片的高与宽,不须要装置GD library便可以便用本函数。前往的数组有4个元素,前往数组的第一个元素(索引值0)是图片的高度,单元是像素(pixel);第二个元素(索引值1)是图片的宽度;第三个元素(索引值2)是图片的文件格局,其值1为GIF格局、2为JPEG/JPG格局、3为PNG格局;第四个元素(索引值3)为图片的高与宽字符串,height=xxx width=yyy。经过getimagesize()函数的利用,能容易猎取图片的种种信息。上面给各人举一个猎取图片宽度、高度、格局、文件巨细的信息的例子,来进一步懂得getimagesize()函数的应用技能。顺序imginfo如顺序清单12—6所示。顺序清单12-6imginfo.php<?phpfunction getImageInfo($img) //$img为图象文件相对门路{$img_info = getimagesize($img);switch ($img_info[2]){case 1: $imgtype = "GIF"; break;case 2: $imgtype = "JPG"; break;case 3: $imgtype = "PNG"; break;}$img_type = $imgtype."图象";$img_size = ceil(filesize($img)/1000)."k"; //猎取文件巨细$new_img_info = array ("width"=>$img_info[0],"height"=>$img_info[1],"type"=>$img_type,"size"=>$img_size);print " width";print $img_info[0];print " height";print $img_info[1];print " format";print $img_type;print " size";print $img_size;print $new_img_info;}$img = "/www/htdocs/images/jf.gif";getImageInfo($img);?>在顺序12-5中要创立一个缩略图,须要先创立一个用来画图的空缺的画布。ImageCreate函数能够做到这一点。它将前往一个图象的标识符,而且须要告知函数用像素盘算的画布有多大(x(宽度)与y(高度))。在顺序12-5顶用到的图形创立函数imagecreate()的尺度语法以下:语法:int imagecreate(int x_size,int y_size);前往值:整数函数品种:图形处置内容阐明:本函数用来树立一张全空的图形。参数x_size、y_size为图形的尺寸,单元为像素(pixel)。假如要从曾经存在的图片中掏出图片文件代码,能够用imagecreatefromgif()、imagecreatefromjpeg()或imagecreatefrompng(),比方函数imagecreatefromgif()就是从一个GIF格局的图片文件中掏出对应的图片源代码,其尺度语法以下:语法:int imagecreatefromgif(string filename);前往值:整数函数品种:图形处置内容阐明:本函数用来掏出一张GIF格局图形,平日作为配景或许基础的画布样本使用。参数filename能够是当地真个文件,也能够是收集的URL地点。前往值为GIF的文件代码,可供其余函数应用。在将源位图减少后拷贝到目的位图中时,用到了imagecopyresized()函数,此函数能够复制新图并调剂巨细,其尺度语法以下:语法:int imagecopyresized(int dst_im,int src_im,int dstX,int dstY,int srcX,int srcY,int dstW,int dstH,int srcW,int srcH);前往值:整数函数品种:图形处置内容阐明:本函数可复制新图,偏重新调剂图片的巨细尺寸。参数那是目标在前,来源在后。参数ddst_im及src_im为图片的handle。参数dstX、dstY、srcX、srcY分辨为目标及起源的坐标。参数dstW、dstH、srcW、srcH分辨为起源及目标的宽及高,若欲调剂新图的尺寸就在这里设置。最初在输入图象时用到的imagegif()函数的尺度语法以下:语法:int imagegif(int im,string [filename]);返问值:整数函数品种:图形处置内容阐明:本函数用来树立一张GIF格局图形。参数im为应用ImageCreate()所树立的图片代码,参数filename可省略,若无本参数filename,则会将图片间接送到扫瞄器端,记得在送出图片之前要先送出应用Content-type:image/gif的标头字符串(header)到扫瞄器端,以顺遂传输图片。若要应用通明配景的GIF图,也就是GIF89a的格局,须要先应用ImageColorTransparent()设置通明配景。本函数发生的GIF图,因为有版权的成绩,因而在贸易上的应用还要多加斟酌。

上一篇:mssql 锁死或超时解决办法-网络编程

下一篇:没有了