php图片加水印
‘壹’ php可以去除jpg格式图片的背景并加水印吗
加水印 没有任何问题 ,, 去除背景 有点难. 除非是很规则的背景
注意 使用时php 要加载GD库
‘贰’ 谁有php批量处理图片、图片生成缩略图、图片添加水印的函数
//批量处理图片、图片生成缩略图、图片添加水印
$dir=opendir(dirname(__FILE__));
while(!!$_file=readdir($dir)){
list($filesname,$kzm)=explode(".",$_file);//获取扩展名
if($kzm=="gif"or$kzm=="jpg"or$kzm=="JPG"or$kzm=="png"){
if(!makethumb("$_file","120","120","100")){
echo'执行成功!';
}else{
echo'执行失败!';
}
}
}
closedir($dir);
/**
*处理缩略图并添加水印函数
*@accesspubliuc
*@param$srcFile-----------图片文件名
*@param$dstFile-----------另存的文件名
*@param$dstW-------------图片保存的宽度
*@param$dstH--------------图片保存的高度
*@param$rate---------------图片保存的品质
*@param$markwords-----水印文字
*@param$markimage-----水印图片
*@param使用方法makethumb("a.jpg","b.jpg","120","120","100");
*/
functionmakethumb($srcFile/*,$dstFile*/,$dstW,$dstH,$rate=100/*,$markwords=null,$markimage=null*/){
$data=GetImageSize($srcFile);
switch($data[2]){
case1:
$im=@ImageCreateFromGIF($srcFile);
break;
case2:
$im=@ImageCreateFromJPEG($srcFile);
break;
case3:
$im=@ImageCreateFromPNG($srcFile);
break;
}
if(!$im)returnFalse;
$srcW=ImageSX($im);
$srcH=ImageSY($im);
$dstX=0;
$dstY=0;
if($srcW*$dstH>$srcH*$dstW){
$fdstH=round($srcH*$dstW/$srcW);
$dstY=floor(($dstH-$fdstH)/2);
$fdstW=$dstW;
}
else
{
$fdstW=round($srcW*$dstH/$srcH);
$dstX=floor(($dstW-$fdstW)/2);
$fdstH=$dstH;
}
$ni=ImageCreateTrueColor($dstW,$dstH);
$dstX=($dstX<0)?0:$dstX;
$dstY=($dstX<0)?0:$dstY;
$dstX=($dstX>($dstW/2))?floor($dstW/2):$dstX;
$dstY=($dstY>($dstH/2))?floor($dstH/s):$dstY;
$white=ImageColorAllocate($ni,255,255,255);
$black=ImageColorAllocate($ni,0,0,0);
imagefilledrectangle($ni,0,0,$dstW,$dstH,$white);//填充背景色
ImageCopyResized($ni,$im,$dstX,$dstY,0,0,$fdstW,$fdstH,$srcW,$srcH);
//if($markwords!=null){
//$markwords=iconv("gb2312","UTF-8",$markwords);
////转换文字编码
//ImageTTFText($ni,20,30,450,560,$black,"simhei.ttf",$markwords);//写入文字水印,参数依次为,文字大小|偏转度|横坐标|纵坐标|文字颜色|文字类型|文字内容
//}elseif($markimage!=null){
//$wimage_data=GetImageSize($markimage);
//switch($wimage_data[2]){
//case1:
//$wimage=@ImageCreateFromGIF($markimage);
//break;
//case2:
//$wimage=@ImageCreateFromJPEG($markimage);
//break;
//case3:
//$wimage=@ImageCreateFromPNG($markimage);
//break;
//}
//image($ni,$wimage,500,560,0,0,88,31);//写入图片水印,水印图片大小默认为88*31
//imagedestroy($wimage);
//}
$dstFile=$srcFile.'.gif';
ImageJpeg($ni,$dstFile,$rate);
//ImageJpeg($ni,$srcFile,$rate);
imagedestroy($im);
imagedestroy($ni);
}
‘叁’ phpcms v9 如何让编辑器中上传的图片加水印
登陆后台,进入后台首页看到顶级菜单的“设置",
点击一下,左边出现“站点设置”,此时看有自己的站点名,
点击右边的“修改”,此时出现“编辑站点“对话框,我们滑动鼠标滚轮,可以看到对话框底部有“附件配置”的相关设置
在这里可以附件的大小,与附件的类型,
还有最重要的是开启图片水印功能,水印的大小设置,水印图片的设置,
与水印的透明度设置,水印放在图片的哪个位置,都有非常详细的说明,
如果不太会,可以每个者尝试一下,看看效果是否怎样,需要选择比较好的效果设置一下,好了
‘肆’ php 怎么上传完图片之后,给这个图片打水印,并且保存在另一个文件夹
这个php中的图片处理类完全足够了,使用图片水印
$groundImg = "DSC05940.jpeg";
$groundInfo = getimagesize($groundImg);
$ground_w = $groundInfo[0];
//print_r($groundInfo);
$ground_h = $groundInfo[1];
switch($groundInfo[2]){
case 1:
$ground_im = imagecreatefromgif($groundImg);
break;
case 2:
$ground_im = imagecreatefromjpeg($groundImg);
break;
case 3:
$ground_im = imagecreatefrompng($groundImg);
break;
}
$waterImg = "DSC05949.jpeg";
$imgInfo =getimagesize($waterImg);
$water_w = $imgInfo[0];
$water_w = $imgInfo[1];
switch($imgInfo[2]){
case 1:
$water_im = imagecreatefromgif($waterImg);
break;
case 2:
$water_im = imagecreatefromjpeg($waterImg);
break;
case 3:
$water_im = imagecreatefrompng($waterImg);
break;
}
image($ground_im,$water_im,100,100,0,0,500,500);
header("Content-type: image/jpeg");
imagejpeg($ground_im);
这些都很麻烦,建议使用框架,很多框架都提供了图片处理类供使用
‘伍’ php怎么给这个图片添加日期和定位的水印
使用HTML 的Canvas画图功能,把你的原图片作为背景图,然后你根据情况在某个位置添加日期还有定位水印,然后再合成一张新的图片,生成到指定位置。希望能帮到你!
‘陆’ php如何实现自动加水印
加水印逻辑有两种
一种是上传直接加水印
另一种是利用伪静态将图片访问重定向到处理程序,临时加水印缓存并输出
php处理图片加水印可以使用gd库中的相关函数
以下为临时手打代码,可以按此思路优化,有问题可以联系本人
//此处需根据上传的图片格式使用对应函数实例化图片
$img=imagecreatefromjpg($imgurl);
//根据水印图片路径实例化水印
$waterImg=imagecreatefrompng($waterpath);
//获取原图及水印图片尺寸,用以计算是否需要缩放及放置位置
list($width,$height,$type,$attr)=getimagesize($imgurl);
list($waterw,$waterh,$type,$attr)=getimagesize($waterpath);
$scale=1;
$waterReleaseW=$waterw;
$waterReleaseH=$waterh;
if($waterReleaseW>$width*.5){
$scale=$width*.5/$waterw;
$waterReleaseW=$width*.5;
$waterReleaseH=$waterh*$scale;
}
if($waterReleaseH>$height*.5){
$scale*=$height*.5/$waterh;
$waterReleaseH=$height*.5;
$waterReleaseW=$waterw*$scale;
}
//将水印图片拷贝到原图指定位置(此示例为右下角)
imageresized($img,$waterImg,
$width-$waterReleaseW-10,$height-$waterReleaseH-10,
0,0,
$width-10,$height-10,
$waterw,$waterh);
//销毁水印图片实例
imagedestroy($waterImg);
//水印后图片保存
imagejpeg($img,$newpath);
‘柒’ php 图片添加logo水印
imagealphablending()函数 配合 image()可达到去掉背景颜色的效果
注:水印本身必须是 透明底色的png格式
下图为实际效果图:
‘捌’ 用PHP代码给图片加水印
这篇文章主要介绍了用PHP代码给图片加水印的相关资料,需要的朋友可以参考下
先找好一张图片,更名为face.jpeg,创建watermark.php:
?
1
2
3
4
5
6
7
8
9
10
11
12
<?php
/**
*
Created
by
PhpStorm.
*
User:
Administrator
*
Date:
2015/6/29
*
Time:
22:27
*/
$img
=
imagecreatefromjpeg('face.jpeg');//根据已有的JPG创建image
header('Content-type:image/jpeg');//设置mime
type
imagestring($img,5,5,5,'Vito-L',imagecolorallocate($img,255,0,0));//生成水印,imagestring(图片,字体,位置x,位置y,字符串,颜色)
imagejpeg($img);//输出图片
//整幅图像的左上角为
0,0
效果如下:
以上所述就是本文的全部内容了,希望大家能够喜欢。