PHP实现给图片加图片水印

PHP实现给图片加图片水印

一、开发环境

1、Windows+Apache+MySQL+PHP的环境。

2、文本编辑器:Sublime。

二、主要技术

PHP+HTML+CSS

三、效果图与具体步骤


实现效果图,如图1所示。

 

图1 效果图

3.1、界面设计

(1)创建php文件和文件夹

 创建一个名为“shuiyin_image.php”的PHP文件用来实现加图片水印的功能。

创建一个名为“images”的文件夹用来存放原图片和加过水印的图片。

(2)界面设计

<formaction="shuiyin.php" method="post">

<tableborder="2px solid #CCCCCC">

<td>

         请选择要添加水印的图片:<select name="picname[]">

         <option>./images/ch.jpg</option>

         <option>./images/mn.jpg</option>

         <option>./images/xm.jpg</option>

         </select>

</td>

<td>

         <input type="submit"name="sub" value="查看效果图">

</td>

</tr>

<trheight="240px">

<td colspan="2">

<!—添加水印的功能代码-->

</td>

</tr>

</table>

</form>

3.2、实现添加图片水印的功能

(1)创建一个添加图片水印函数

/**

 * 为一张图片添加上一个logo图片水印(以保存的方式实现)

 * @param string $picname 被处理图片源

 * @param string $logo 水印图片

 * @param string $pre 处理后图片名的前缀名

 * @return String 返回后的图片名称(带路径),如a.jpg=>n_a.jpg

 */

functionimageUpdateLogo($picname,$logo,$pre="shuiyin_"){

$picnameinfo= getimageSize($picname); //获取图片源的基本信息

$logoinfo= getimageSize($logo); //获取logo图片的基本信息

//var_dump($logoinfo);

//根据图片类型创建出对应的图片源

switch($picnameinfo[2]){

         case 1: //gif

                  $im =imagecreatefromgif($picname);

                  break;

         case 2: //jpg

                  $im =imagecreatefromjpeg($picname);

                  break;

         case 3: //png

                  $im =imagecreatefrompng($picname);

                  break;

         default:

                  die("图片类型错误!");

}

//根据logo图片类型创建出对应的图片源

switch($logoinfo[2]){

         case 1: //gif

                $logoim = imagecreatefromgif($logo);

                break;

         case 2: //jpg

                  $logoim = imagecreatefromjpeg($logo);

                  break;

         case 3: //png

                  $logoim =imagecreatefrompng($logo);

                  break;

         default:

                  die("logo图片类型错误!");

}

 

//执行图片水印处理

imagecopyresampled($im,$logoim,$picnameinfo[0]-$logoinfo[0],$picnameinfo[1]-$logoinfo[1],0,0,$logoinfo[0],$logoinfo[1],$logoinfo[0],$logoinfo[1]);

        

//输出图像(根据源图像的类型,输出为对应的类型)

$picinfo =pathinfo($picname);//解析源图像的名字和路径信息

$newpicname=$picinfo["dirname"]."/".$pre.$picinfo["basename"];

switch($picnameinfo[2]){

         case 1:

                  imagegif($im,$newpicname);

                  break;

         case 2:

                  imagejpeg($im,$newpicname);

                  break;

         case 3:

                  imagepng($im,$newpicname);

                  break;

}

//释放图片资源

imagedestroy($im);

imagedestroy($logoim);

return$newpicname;

}

(2)调用函数,输出添加水印后的图片

if(isset($_POST['sub'])){

         $picnames=$_POST['picname']; // 源图名称

         $picname=$picnames[0];

         $newimage=imageUpdateLogo("$picname","./images/cz.jpeg");

         // 在页面中输出加水印后图片

         echo "<center><imgsrc='$newimage' style='width:320px;height:200px'></center>";

         }

 

四、网页测试

开启Apache服务器后,打开浏览器,在浏览器地址栏中输入文件地址,例如:


“localhost:8080/image_deal/shuiyin_image.php”可以看到如图2所示的界面。

 

图2 项目结果图

然后选择一张要进行添加水印的图片,点击“查看效果图”,可以看到如图3所示的添加水印后的图片。

 
 

图3 验证结果图

并且在images文件夹中也可以看到生成的加水印图片。说明测试成功。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值