【php学习之路】水印功能的基本实现

学习之路,除了看,还有不停地练习,记录,希望在这个地方记录学习的点滴,同时提升一丁点自己的文字功底(表示打这些话的时候语序非常混乱。。。

直入正题,本次主要记录几个水印相关的功能,方法可能比较旧了。接触到新的再说吧:

文字水印

//打开图像
$src = "原始图像路径";  //选择图像
$info = getimagesize("$src"); //获取图像的基本信息,info[0]、info[1]:图像的宽高,info[2]:图像的类型
$type = image_type_to_extension($info[2],false); //获取图像的类型,将输出(jpeg、png等),false表示不保留类型前的".";
$fun = "imagecreatefrom{$type}";  //确认载入图像类型的函数;
$image = $fun($src);  //通过url地址载入图像至内存中;

//操作图像
$font = "字体文件路径";
$fontColor = imagecolorallocatealpha("图像资源",R,G,B,透明度); //定义文字水印颜色;
$content = "水印内容"; 
imagettftext("图像资源","字体大小","旋转角度","x","y","字体颜色","字体文件");//生成水印,xy表示水印的偏移值

//输出并销毁内存中的图片
header("Content-type:".$info['mime']); //定义头部信息
$func = "image{$type}";
$func("图像资源"); //在浏览器中生成图片;
$func("图像资源","url"); //在指定路径生成图片;
imagedestroy("图像资源"); //销毁内存中的图片;

图片水印

//打开图片
$src = "";//选择图像
$info = getimagesize();//获取图像的基本信息,info[0]、info[1]:图像的宽高,info[2]:图像的类型
$type = image_type_to_extension($info[2],false);//获取图像的类型,将输出(jpeg、png等),false表示不保留类型前的".";
$fun = "imagecreatefrom{$type}";//确认载入图像类型的函数;
$image = $fun($src);//通过url地址载入图像至内存中;

//操作图片
$src2 = "水印图片路径";
$info2 = getimagesize('$src2');//获取图像的基本信息,info[0]、info[1]:图像的宽高,info[2]:图像的类型
$type2 = image_type_to_extension(info2[2],false);//获取图像的类型,将输出(jpeg、png等),false表示不保留类型前的".";
$funs = "imagecreatefrom{$type2}";//确认载入图像类型的函数;
$imageMark = $funs($src);//通过url地址载入图像至内存中;
imagecopymerge(resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int $pct);  //将 src_im 图像中座标从 src_x,src_y 开始,宽度为 src_w,高度为 src_h 的一部分拷贝到 dst_im 图像中座标为 dst_x 和 dst_y 的位置上。两图像将根据 pct 来决定合并程度,其值范围从 0 到 100。当 pct = 0 时,实际上什么也没做,当为 100 时对于调色板图像本函数和 imagecopy() 完全一样,它对真彩色图像实现了 alpha 透明

//输出并销毁内存中的图片
header("Content-type:".$info['mime']); //定义头部信息
$func = "image{$type}";
$func("图像资源"); //在浏览器中生成图片;
$func("图像资源","url"); //在指定路径生成图片;
imagedestroy("图像资源"); //销毁内存中的图片;
imagedestroy("水印图片资源");  //销毁内存中的水印图片;

压缩图片

//打开图片
$src = "";//选择图像
$info = getimagesize();//获取图像的基本信息,info[0]、info[1]:图像的宽高,info[2]:图像的类型
$type = image_type_to_extension($info[2],false);//获取图像的类型,将输出(jpeg、png等),false表示不保留类型前的".";
$fun = "imagecreatefrom{$type}";//确认载入图像类型的函数;
$image = $fun($src);//通过url地址载入图像至内存中;

//操作图片
$image_thumb = imagecreatetruecolor(w,h);  //在内存中生成一张真彩图片;
imagecopyresampled (resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h); //进行压缩操作,dst为目标图像($image_thumb),src为源图像($image);

//输出并销毁内存中的图片
header("Content-type:".$info['mime']); //定义头部信息
$func = "image{$type}";
$func("图像资源"); //在浏览器中生成图片,此处应为$image_thumb;
$func("图像资源","url"); //在指定路径生成图片,此处应为$image_thumb;
imagedestroy("源图像资源"); //销毁内存中的图片;
imagedestroy("压缩图像资源"); //销毁内存中的图片;
发布了15 篇原创文章 · 获赞 15 · 访问量 3万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章