以前知道水印和缩略图不知道他们的原理以及详细的过程,现在终于明白了。代码解释比较详细。附代码:
<?php
//imagecopy(resource dst_im, resource src_im, int dst_x, int dst_y, int src_x, int src_y, int src_w, int src_h );
//将 src_im 图像中坐标从 src_x,src_y 开始,
//宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像
//中坐标为 dst_x 和 dst_y 的位置上。
$image=’123.jpg’;//原图片地址
$img=getimagesize($image);//获取图片信息,返回一个数组
switch($img[2]){
case 1:
$im=@imagecreatefromgif($image);
break;
case 2:
$im=@imagecreatefromjpeg($image);
break;
$im=@imagecreatefrompng($image);
break;
}
//载入logo
$logo=’logo.jpg’;
$lo=getimagesize($logo);
switch($lo[2]){
case 1:
$in=@imagecreatefromgif($logo);
break;
case 2:
$in=@imagecreatefromjpeg($logo);
break;
$in=@imagecreatefrompng($logo);
break;
}
//$te=imagecolorallocate($im,0,0,0);
//imagettftext($im,12,0,20,20,$te,’simhei.ttf’,’Logo 文字’);
imagecopy($im,$in,40,40,0,0,’374′,’97’);
if(imagejpeg($im,’110.jpg’))//创建一个新图,可以把原来的图片覆盖掉
{
echo ‘成功’;
}
?>
上面是水印的合成,下面讲介绍如果生成缩略图。其实缩略图就是建立一个画布,然后把原来的图作为一个资源画在新的图上。附代码解释(接上面代码)
<?php
$sm_new=imagecreatetruecolor(40,30);
imagecopyresized($sm_new,$im,0,0,0,0,40,30,$img[0],$img[1]);
//第一个是新画布,第二个是资源,第三、四是画布开始位置,第五、六是原图开始缩略位置,第七八是画布大小
//后面是原图大小
imagejpeg($sm_new);//建立新图
?>