php图片处理的知识内容
upload_image.php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=gb2312"/><title>图片上传页</title><styletype="text/CSS">.file-box{position:relative;width:340px}.txt{height:22px;border:1px solid #cdcdcd;width:200px;border-right:none;}.btn{background-color:#FFF;border:1px solid #CDCDCD;height:26px;width:70px;}.file{position:absolute;top:0;right:80px;height:24px;filter:alpha(opacity:0);opacity:0;width:260px}</style><scripttype="text/javascript">//JS获取路径 ---成功functionchange()
{varpic=document.getElementById('pic');varfile=document.getElementById('fileField');
pic.src=file.value;if(file.files){if(file.files.item(0)){//src = window.URL.createObjectURL(fileObj.files[0]);url=window.URL.createObjectURL(file.files.item(0));
document.getElementById('textfield').value=pic.src ;
pic.src=url;
}
}
}</script></head><body><formaction="check_image.php"method="post"enctype="multipart/form-data"><tableborder="1"><tr><td>上传人名称:</td><td><inputtype="text"class='txt'name="username"/></td></tr><tr><td>*上传图片:</td><td><divclass="file-box"><inputtype='text'name='textfield'id='textfield'class='txt'/><inputtype='button'class='btn'value='浏览...'/><
br/><inputtype="file"name="uploadfile"class="file"id="fileField"size="28"onchange="change();"/><inputtype="hidden"id="theFilePath"name="theFilePath"value=""></div></td></tr><tr><tdcolspan="2"><small><em>* 可接受的图像格式:GIF,JPG、JPEG和PNG。上传后图片会变为1280X960大小。</em></small></td></tr><tr><td>图片标题:</td><td><inputtype="text"class='txt'name="caption"/></td></tr><tr><tdcolspan="2"style="text-align:center;"><inputtype="submit"name="submit"value="Upload"class='btn'/></td></tr></table><imgsrc=""name="pic"id="pic"/><
br/></form></body></html>
check_image.php 集合图片上传,MySQL数据库保存,图片放大至1280X960,图片加文字,图片PS处理,图片缩略图,图片打LOGO水印。功能集合强大。
<?php//sessionsession_start();if($_POST['submit'] == 'Upload')
{if($_FILES['uploadfile']['error'] !=UPLOAD_ERR_OK)
{switch($_FILES['uploadfile']['error'])
{caseUPLOAD_ERR_INI_SIZE://其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值die('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');
break;caseUPLOAD_ERR_FORM_SIZE://其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值die('上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值');
break;caseUPLOAD_ERR_PARTIAL://其值为 3,文件只有部分被上传die('文件只有部分被上传');
break;caseUPLOAD_ERR_NO_FILE://其值为 4,没有文件被上传die('没有文件被上传');
break;caseUPLOAD_ERR_NO_TMP_DIR://其值为 6,找不到临时文件夹die('找不到临时文件夹');
break;caseUPLOAD_ERR_CANT_WRITE://其值为 7,文件写入失败die('文件写入失败');
break;caseUPLOAD_ERR_EXTENSION://其他异常die('其他异常');
break;
}
}//判断图片的后缀switch($type)
{caseIMAGETYPE_GIF:$ext= '.gif';
break;caseIMAGETYPE_JPEG:$ext= '.jpg';
break;caseIMAGETYPE_PNG:$ext= '.png';
break;default:die('您上传的文件不支持的文件类型。');
}//关键位置-取出文件后缀$_SESSION['ext'] =$ext;
}/*//改变图像的大小为1280x960的方法
function resizepic($imgsrc,$imagename,$toimgwidth,$toimgheigth)
{
//$imgsrc:图片路径 $imgname: 图片保存的名称 $toimgwidth: 图片最终的宽度 $toimgheigth: 图片最终的高度
$arr = getimagesize($imgsrc);
$imgWidth = $toimgwidth;
$imgHeigth = $toimgheigth;
if($_SESSION['ext'] == '.jpg')
{
header('Content-Type:image/jpeg');
$imgSrc = imagecreatefromjpeg($imgsrc);
}
if($_SESSION['ext'] == '.png')
{
header('Content-Type:image/png');
$imgSrc = imagecreatefrompng($imgsrc);
}
if($_SESSION['ext'] == '.gif')
{
header('Content-Type:image/gif');
$imgSrc = imagecreatefromgif($imgsrc);
}
$image = imagecreatetruecolor($imgWidth, $imgHeigth);
imagecopyresampled($image,$imgSrc,0,0,0,0,$imgWidth,$imgHeigth,$arr[0],$arr[1]);
if($_SESSION['ext'] == '.jpg')
{
imagejpeg($image,$dir.'/'.$imagename);
}
if($_SESSION['ext'] == '.png')
{
imagepng($image,$dir.'/'.$imagename);
}
if($_SESSION['ext'] == '.gif')
{
imagegif($image,$dir.'/'.$imagename);
}
//销毁由url生成的图片
imagedestroy($image);
}*///创建moviesite数据库--MySQL$coon=mysql_connect("localhost","root","lifu") ordie('不能连接到数据库');if(!$coon)
{die('无法连接: ' .mysql_error());
}if(mysql_query("CREATE DATABASE if not exists moviesite",$coon))//如果没有就创建数据库{echo"数据库创建成功<br>";
}else{echo"数据库创建错误: " .mysql_error();
}//创建images表mysql_select_db("moviesite",$coon);//如果没有就创建表$sql= "CREATE TABLE if not exists images
(
image_id int NOT NULL AUTO_INCREMENT,PRIMARY KEY(image_id),
image_caption varchar(15),
image_username varchar(15),
image_filename varchar(15),
image_date datetime
)";mysql_query($sql,$coon);mysql_close($coon);//修改图片效果$db=mysql_connect('localhost','root','lifu') ordie('不能连接到数据库');mysql_select_db('moviesite',$db) ordie(mysql_error($db));//上传文件的路径$dir= 'D:\phpStudy\WWW\loadimages\images';//缩略图的路径$thumbdir= 'D:\phpStudy\WWW\loadimages\images\thumbs';//设置环境变量putenv('GDFONTPATH='.'C:\Windows\Fonts');$font= "C:\Windows\Fonts\arial.ttf";//upload_image.php页面传递过来的参数,如果是上传图片if($_POST['submit'] == 'Upload')
{/*代码重复
if($_FILES['uploadfile']['error'] != UPLOAD_ERR_OK)
{
switch($_FILES['uploadfile']['error'])
{
case UPLOAD_ERR_INI_SIZE: //其值为 1,上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值
die('上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值');
break;
case UPLOAD_ERR_FORM_SIZE: //其值为 2,上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值
die('上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值');
break;
case UPLOAD_ERR_PARTIAL: //其值为 3,文件只有部分被上传
die('文件只有部分被上传');
break;
case UPLOAD_ERR_NO_FILE: //其值为 4,没有文件被上传
die('没有文件被上传');
break;
case UPLOAD_ERR_NO_TMP_DIR: //其值为 6,找不到临时文件夹
die('找不到临时文件夹');
break;
case UPLOAD_ERR_CANT_WRITE: //其值为 7,文件写入失败
die('文件写入失败');
break;
case UPLOAD_ERR_EXTENSION: //其他异常
die('其他异常');
break;
}
}*/$image_caption=$_POST['caption'];$image_username=$_POST['username'];$image_date=date('Y-m-D');/*getimagesize方法返回一个数组,
$width : 索引 0 包含图像宽度的像素值,
$height : 索引 1 包含图像高度的像素值,
$type : 索引 2 是图像类型的标记:
= GIF,2 = JPG, 3 = PNG, 4 = SWF, 5 =PSD, 6 = BMP,
= TIFF(intel byte order),8 = TIFF(motorola byte order),
= JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM,
$attr : 索引 3 是文本字符串,内容为“height="yyy" width="xxx"”,可直接用于 IMG 标记*/list($width,$height,$type,$attr) =getimagesize($_FILES['uploadfile']['tmp_name']);//imagecreatefromgXXX方法从一个url路径中创建一个新的图片switch($type)
{caseIMAGETYPE_GIF:$image= imagecreatefromgif($_FILES['uploadfile']['tmp_name']) ordie('你上传的文件是不支持的文件类型');$ext= '.gif';$array=getimagesize($_FILES['uploadfile']['tmp_name']);
break;caseIMAGETYPE_JPEG:$image= imagecreatefromjpeg($_FILES['uploadfile']['tmp_name']) ordie('你上传的文件是不支持的文件类型');$ext= '.jpg';$array=getimagesize($_FILES['uploadfile']['tmp_name']);
break;caseIMAGETYPE_PNG:$image= imagecreatefrompng($_FILES['uploadfile']['tmp_name']) ordie('你上传的文件是不支持的文件类型');$ext= '.png';$array=getimagesize($_FILES['uploadfile']['tmp_name']);
break;default:die('您上传的文件不支持的文件类型。');
}//将图片改为1280X960
//新建一个指定大小的真彩色图像big$big= imagecreatetruecolor(1280, 960);//重采样拷贝部分图像并调整大小为1280X960imagecopyresampled($big,$image, 0, 0, 0, 0, 1280, 960,$array[0],$array[1]);$query= 'insert into images(image_caption,image_username,image_date) values ("'.$image_caption.'","'.$image_username.'",now())';mysql_query($query,$db) ordie(mysql_error($db));$last_id=mysql_insert_id();//用写入的id作为图片的名字,避免同名的文件存放在同一目录中$imagename=$last_id.$ext;$image_id=$last_id;$query= 'update images set image_filename="'.$imagename.'" where image_id='.$last_id;mysql_query($query,$db) ordie(mysql_error($db));//有url指定的图片创建图片并保存到指定目录switch($type)
{caseIMAGETYPE_GIF:imagegif($big,$dir.'/'.$imagename);
break;caseIMAGETYPE_JPEG:imagejpeg($big,$dir.'/'.$imagename);
break;caseIMAGETYPE_PNG:imagepng($big,$dir.'/'.$imagename);
break;
}//销毁由url生成的图片imagedestroy($big);
imagedestroy($image);
}else//如果图片已经上传,则从数据库中取图片名字{$query= 'select image_id,image_caption,image_username,image_date from images where image_id='.$_POST['id'];$result=mysql_query($query,$db) ordie(mysql_error($db));//将结果集转换成关联数据,再将关联数组的键名当作变量名,值作为变量的值。extract(mysql_fetch_assoc($result));list($width,$height,$type,$attr) =getimagesize($dir.'/'.$image_id.$_SESSION['ext']);
}//如果是保存图片if($_POST['submit'] == 'Save')
{if(isset($_POST['id']) &&ctype_digit($_POST['id']) &&file_exists($dir.'/'.$_POST['id'].$_SESSION['ext']))
{if($_SESSION['ext'] == '.jpg')
{$image= imagecreatefromjpeg($dir.'/'.$_POST['id'].$_SESSION['ext']);
}if($_SESSION['ext'] == '.png')
{$image= imagecreatefrompng($dir.'/'.$_POST['id'].$_SESSION['ext']);
}if($_SESSION['ext'] == '.gif')
{$image= imagecreatefromgif($dir.'/'.$_POST['id'].$_SESSION['ext']);
}
}else{die('指定的无效图像');
}$effect= (isset($_POST['effect'])) ?$_POST['effect'] : -1;switch($effect)
{caseIMG_FILTER_NEGATE:imagefilter($image, IMG_FILTER_NEGATE);//将图像中所有颜色反转
break;caseIMG_FILTER_GRAYSCALE:imagefilter($image, IMG_FILTER_GRAYSCALE);//将图像转换为灰度的
break;caseIMG_FILTER_EMBOSS:imagefilter($image, IMG_FILTER_EMBOSS);//使图像浮雕化
break;caseIMG_FILTER_GAUSSIAN_BLUR:imagefilter($image, IMG_FILTER_GAUSSIAN_BLUR);//用高斯算法模糊图像
break;
}//图片指定位置打印文字if(isset($_POST['emb_caption']))
{/*array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
$image 图像源 $size字体大小 $angle 逆时针旋转角度 $fontfile 字体类型 $text 文本内容*/imagettftext($image, 12 , 0 , 20 , 20 , 0 ,$font,$image_caption);
}//图片指定位置打LOGOif(isset($_POST['emb_logo']))
{//获取水印图片的尺寸并创建水印list($wmk_width,$wmk_height) =getimagesize('images/logo.png');//$x = ($width-$wmk_width) / 2;
//$y = ($height-$wmk_height)/2;$x=$width-$wmk_width;$y=$height-$wmk_height;$wmk= imagecreatefrompng('images/logo.png');//把水印图片和原图片合并在一起/*将 wmk 图像中坐标从 0,0 开始,宽度为 $wmk_width,高度为 $wmk_height 的一部分拷贝到 image 图像中坐标为 $x 和 $y 的位置上。
两图像将根据 pct=20 来决定合并程度,其值范围从 0 到 100。当 pct = 0 时,实际上什么也没做,当为
100 时对于调色板图像本函数和 imagecopy() 完全一样,它对真彩色图像实现了 alpha 透明。*/imagecopymerge($image,$wmk,$x,$y, 0 , 0 ,$wmk_width,$wmk_height, 20);//清除水印图片imagedestroy($wmk);
}//缩略图大小$thumb_width=$width* 0.10;$thumb_height=$height* 0.10;//创建一个缩略图$thumb= imagecreatetruecolor($thumb_width,$thumb_height);
imagecopyresampled($thumb,$image, 0, 0, 0, 0,$thumb_width,$thumb_height,$width,$height);//保存缩略图if($_SESSION['ext'] == '.jpg')
{
imagejpeg($thumb,$thumbdir. '/' .$_POST['id'] .$_SESSION['ext'], 100);
}if($_SESSION['ext'] == '.png')
{imagepng($thumb,$thumbdir. '/' .$_POST['id'] .$_SESSION['ext']);
}if($_SESSION['ext'] == '.gif')
{
imagegif($thumb,$thumbdir. '/' .$_POST['id'] .$_SESSION['ext']);
}echo"修改好的缩略图:<img src='"."images/thumbs/" .$_POST['id'] .$_SESSION['ext']."' alt='' /> <br />";//清除缩略图imagedestroy($thumb);//保存原图if($_SESSION['ext'] == '.jpg')
{
imagejpeg($image,$dir.'/'.$_POST['id'].$_SESSION['ext'] , 100);
}if($_SESSION['ext'] == '.png')
{//压缩等级必须是0-9的png文件imagepng($image,$dir.'/'.$_POST['id'].$_SESSION['ext']);
}if($_SESSION['ext'] == '.gif')
{
imagegif($image,$dir.'/'.$_POST['id'].$_SESSION['ext']);
}echo"修改好的大图:<img src='"."images/" .$_POST['id'] .$_SESSION['ext']."' alt='' /> <br />";?>
<html>
<head>
<title>你的图片在这!</title>
</head>
<body>
<h1>你的图片被保存!</h1>
<img src="images/<?php echo$_POST['id'];?>.jpg" alt="" />
</body>
</html>
<?php
}else{?>
<html>
<head>
<title>你的图片在这!</title>
</head>
<body>
<p>这里是你上传到服务器上的图片:</p>
</body>
</html>
<?phpif($_POST['submit'] == 'Upload')
{$imagename= 'images/'.$image_id.$_SESSION['ext'];
}else{$imagename= 'image_effect.php?id='.$image_id.'&e='.$_POST['effect'];if(isset($_POST['emb_caption']))
{$imagename.= '&capt='.urlencode($image_caption);
}if(isset($_POST['emb_logo']))
{$imagename.= '&logo=1';
}
}?>
<div>
<?phpecho"src:".$imagename; ?>
<img src="<?php echo$imagename;?>" style="float:left;" alt="" />
<table>
<tr>
<td>Image saveas:</td>
<td><?phpecho"moviesite数据库images表第".$image_id."行!" ;?></td>
</tr>
<tr>
<td>Height:</td>
<td><?phpecho$height;?></td>
</tr>
<tr>
<td>Widht:</td>
<td><?phpecho$width;?></td>
</tr>
<tr>
<td>Uploaddate:</td>
<td><?phpecho$image_date;?></td>
</tr>
</table>
<p>你可以从下面的选项列表中对你的图像应用一个特殊的效果。注:使用任何一个过滤器,保存一个图像 <em>可以撤消</em></p>
<form action="<?php echo$_SERVER['PHP_SELF'];?>" method="post">
<input type="hidden" name="id" value="<?php echo$image_id;?>"/>
<select name="effect" id="">
<option value="-1">保持原状</option>
<?phpecho'<option value="'.IMG_FILTER_GRAYSCALE.'" ';if(isset($_POST['effect']) &&$_POST['effect'] ==IMG_FILTER_GRAYSCALE)
{echo'selected="selected"';
}echo' >灰度图像</option>';echo'<option value="'.IMG_FILTER_GAUSSIAN_BLUR.'"';if(isset($_POST['effect']) &&$_POST['effect'] ==IMG_FILTER_GAUSSIAN_BLUR)
{echo' selected="selected"';
}echo'>高斯算法模糊图像</option>';echo'<option value="'.IMG_FILTER_EMBOSS.'"';if(isset($_POST['effect']) &&$_POST['effect'] ==IMG_FILTER_EMBOSS)
{echo'selected="selected"';
}echo'>图像浮雕化</option>';echo'<option value="'.IMG_FILTER_NEGATE.'"';if(isset($_POST['effect']) &&$_POST['effect'] ==IMG_FILTER_NEGATE)
{echo'selected="selected"';
}echo'>图像中所有颜色反转</option>';?>
</select><br />
<?phpecho'<input type="checkbox" name="emb_caption"';if(isset($_POST['emb_caption']))
{echo' checked="checked"';
}echo' />是否嵌入在图像的标题?';echo'<br />';//添加水印选项echo'<input type="checkbox" name="emb_logo" ';if(isset($_POST['emb_logo']))
{echo'checked="checked"';
}echo' />是否嵌入668LOGO?'. '<br />';?>
<input type="submit" value="Save" name="submit" />
<!--<input type="submit" value="Preview" name="submit" />-->
</form>
</div>
<?php
}mysql_close($db);?>
本来有一个Preview的,后来没弄了,但是代码还是给上 image_effect.php,已经把Preview注释掉了。
<?php//上传文件的路径$dir= 'D:\phpStudy\WWW\loadimages\images';//设置环境变量
putenv('GDFONTPATH='.'C:\Windows\Fonts');$font= "C:\Windows\Fonts\arial.ttf";if(isset($_GET['id']) &&ctype_digit($_GET['id']) &&file_exists($dir.'/'.$_GET['id'].$_SESSION['ext']))
{$image= imagecreatefromjpeg($dir.'/'.$_GET['id'].$_SESSION['ext']);
}else{die('invalid image specified');
}$effect= (isset($_GET['e'])) ?$_GET['e'] : -1;switch($effect)
{caseIMG_FILTER_NEGATE:imagefilter($image,IMG_FILTER_NEGATE);
break;caseIMG_FILTER_GRAYSCALE:imagefilter($image,IMG_FILTER_GRAYSCALE);
break;caseIMG_FILTER_EMBOSS:imagefilter($image,IMG_FILTER_EMBOSS);
break;caseIMG_FILTER_GAUSSIAN_BLUR:imagefilter($image,IMG_FILTER_GAUSSIAN_BLUR);
break;
}if(isset($_GET['capt']))
{//echo $_GET['capt'];imagettftext($image, 12, 0, 20, 20, 0,$font,$_GET['capt']);
}if(isset($_GET['logo']))
{list($widht,$height) =getimagesize($dir.'/'.$_GET['id'].$_SESSION['ext']);list($wmk_width,$wmk_height) =getimagesize('images/logo.png');$x=$width-$wmk_width;$y=$height-$wmk_height;$wmk= imagecreatefrompng('images/logo.png');
imagecopymerge($image,$wmk,$x,$y, 0 , 0 ,$wmk_width,$wmk_height, 20);
imagedestroy($wmk);
}if($_SESSION['ext'] == '.jpg')
{header('Content-Type:image/jpeg');
imagejpeg($image, '' , 100);
}if($_SESSION['ext'] == '.png')
{header('Content-Type:image/png');
imagepng($image, '');
}if($_SESSION['ext'] == '.gif')
{header('Content-Type:image/gif');
imagegif($image, '');
}?>
内容总结:
本人是自学的php,代码书写多有不规范之处,并且有些位置的代码有重复累赘。以后需要加强。
upload_image.php: 主要是 HTML+Javascritp+Css 没什么可说的,主要就Javascript调用 window.URL.createObjectURL(fileObj) 方法。获取图片的相对路径,并做图片的展示。
check_image.php: 1、session 用于保存从 upload_image.php 传递过来的图片的后缀名。
2、数据库moviesite创建,images表的创建
$sql= "CREATE TABLE if not exists images
(
image_id int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(image_id),
image_caption varchar(15),
image_username varchar(15),
image_filename varchar(15),
image_date datetime
)";
3、使用 imagecreatetruecolor 和 imagecopyresampled 将图片大小调整为1280X960.然后将图片上传保存到指定位置。
//将图片改为1280X960
//新建一个指定大小的真彩色图像big$big= imagecreatetruecolor(1280, 960);//重采样拷贝部分图像并调整大小为1280X960imagecopyresampled($big,$image, 0, 0, 0, 0, 1280, 960,$array[0],$array[1]);
4、如果图片已经上传,则从数据库中取图片名字
$query= 'select image_id,image_caption,image_username,image_date from images where image_id='.$_POST['id'];$result=mysql_query($query,$db) ordie(mysql_error($db));//将结果集转换成关联数据,再将关联数组的键名当作变量名,值作为变量的值。extract(mysql_fetch_assoc($result));list($width,$height,$type,$attr) =getimagesize($dir.'/'.$image_id.$_SESSION['ext']);
5、boolimagefilter(resource$src_im,int$filtertype[,int$arg1[,int$arg2[,int$arg3]]] ) 对图像使用过滤器 PS图片
imagefilter() 把过滤器 filtertype 应用到图像上,在需要时使用 arg1,arg2 和 arg3。
filtertype 可以是下列中的一个:
IMG_FILTER_NEGATE:将图像中所有颜色反转。
IMG_FILTER_GRAYSCALE:将图像转换为灰度的。
IMG_FILTER_BRIGHTNESS:改变图像的亮度。用 arg1 设定亮度级别。
IMG_FILTER_CONTRAST:改变图像的对比度。用 arg1 设定对比度级别。
IMG_FILTER_COLORIZE:与 IMG_FILTER_GRAYSCALE 类似,不过可以指定颜色。用 arg1,arg2 和 arg3 分别指定 red,blue 和 green。每种颜色范围是 0 到 255。
IMG_FILTER_EDGEDETECT:用边缘检测来突出图像的边缘。
IMG_FILTER_EMBOSS:使图像浮雕化。
IMG_FILTER_GAUSSIAN_BLUR:用高斯算法模糊图像。
IMG_FILTER_SELECTIVE_BLUR:模糊图像。
IMG_FILTER_MEAN_REMOVAL:用平均移除法来达到轮廓效果。
IMG_FILTER_SMOOTH:使图像更柔滑。用 arg1 设定柔滑级别。
6、图片加文字
//图片指定位置打印文字if(isset($_POST['emb_caption']))
{/*array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )
$image 图像源 $size 字体大小 $angle 逆时针旋转角度 $fontfile 字体类型 $text 文本内容*/imagettftext($image, 12 , 0 , 20 , 20 , 0 ,$font,$image_caption);
}
7、图片打LOGO
//图片指定位置打LOGOif(isset($_POST['emb_logo']))
{//获取水印图片的尺寸并创建水印list($wmk_width,$wmk_height) =getimagesize('images/logo.png');//$x = ($width-$wmk_width) / 2;
//$y = ($height-$wmk_height)/2;$x=$width-$wmk_width;$y=$height-$wmk_height;$wmk= imagecreatefrompng('images/logo.png');//把水印图片和原图片合并在一起/*将 wmk 图像中坐标从 0,0 开始,宽度为 $wmk_width,高度为 $wmk_height 的一部分拷贝到 image 图像中坐标为 $x 和 $y 的位置上。
两图像将根据 pct=20 来决定合并程度,其值范围从 0 到 100。当 pct = 0 时,实际上什么也没做,当为
100 时对于调色板图像本函数和 imagecopy() 完全一样,它对真彩色图像实现了 alpha 透明。*/imagecopymerge($image,$wmk,$x,$y, 0 , 0 ,$wmk_width,$wmk_height, 20);//清除水印图片imagedestroy($wmk);
}
8、缩略图 128X96 大小
//缩略图大小$thumb_width=$width* 0.10;$thumb_height=$height* 0.10;//创建一个缩略图$thumb= imagecreatetruecolor($thumb_width,$thumb_height);
imagecopyresampled($thumb,$image, 0, 0, 0, 0,$thumb_width,$thumb_height,$width,$height);