问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

PHP给图片加水印的思想是什么?

发布网友 发布时间:2022-04-29 12:14

我来回答

3个回答

热心网友 时间:2022-04-25 02:07

贴个php的图片处理类 你可以自己研究下 共同进步 呵呵

/*
此类包含以下功能
A.生成缩略图
B.给图片添加文字水印(包括中文)
C.将指定的图片旋转90度/180度/270度,并保存至文件
D.将图片水平/垂直翻转,并保存至文件
E.在线裁剪图片任意部分矩形(正在编写之中)
具体目标效果暂时可以参考 http://yananzb.com/cut/cut.htm
期待您的响应

成员函数说明
---------------------------------------------------------------------------------------------
public void CImage::__construct(string $src_image_file)
功能:类CImage的构造函数
参数
$src_image_file 字符串,源图片文件名 注意,目前只支持gif,png,jpeg,jpg格式,这是GD库的*,并非本程序的局限
---------------------------------------------------------------------------------------------
public bool CImage: thumb($image_dist,$x)
功能:根据源图片生成缩略图,并保存至文件
$image_dist 字符串 目标缩略图片路径及文件名 如 /File/th.jpg
$x 整型 目标缩略图片的尺寸*即当原始图片的宽大于高时,那么新的缩略图的宽为$x,反之高为$x
---------------------------------------------------------------------------------------------
public bool image_press($image_dist,$str,$font="simkai.ttf")

函数功能:
图片生成水印并保存新图片至目标文件
参数说明:
$image_dist 字符串 目标图片名
$str 字符串 要写入到图片水印的字符串
$font 字符串 合法的系统字体名或WEB目录中正确的字体文件名
---------------------------------------------------------------------------------------------
public bool rotate($image_dist,$angle)
函数功能:
将源图片旋转一定角度并将新图片保存至文件
参数说明:
$image_dist 字符串 目标图片文件名
$angle 整数 要旋转的角度 只能是90或180或270度
---------------------------------------------------------------------------------------------
public bool rotate_h($image_dist)
函数功能:
将源图片水平翻转,并将新图片保存至文件
参数说明:
$image_dist 字符串 目标图片文件名
---------------------------------------------------------------------------------------------
public bool rotate_v($image_dist)
函数功能:
将源图片垂直翻转,并将新图片保存至文件
参数说明:
$image_dist 字符串 目标图片文件名
---------------------------------------------------------------------------------------------
使用范例:
$p=new CImage("s.jpg"); //创建一个图片处理对象
$p->thumb("thumb.jpg",300); //生成缩略图 *尺寸为300,保存为thumb.jpg
$p->rotate("rt.jpg",90); //旋转90度,并保存为rt.jpg,类似地,你可以将90换成180,270进行旋转
$p->rotate_h("h.jpg"); //水平翻转
$p->rotate_v("v.jpg"); //垂直翻转

*/
class CImage{
var $src_image;
var $width;
var $height;
var $image_type;
var $img;
var $src_x;
var $src_y;

function __construct($image_file)
{
$info=GetImageSize($image_file);
$this->src_image=$image_file;
$this->width=$info[0];
$this->height=$info[1];

switch($info[2])
{
case 1:
$this->image_type="gif";
break;
case 2:
$this->image_type="jpeg";
break;
case 3:
$this->image_type="png";
break;
default:
return false;
//echo("Unsurport Image type.");
break;
} //swith end
//echo "ok";
$new_function='ImageCreateFrom'.ucfirst($this->image_type);
$this->img=$new_function($this->src_image);
$this->src_x=ImageSX($this->img);
$this->src_y=ImageSY($this->img);
}
function thumb($image_dist,$x) //$x为新图的*边的尺寸
{
$src_x=ImageSX($this->img);
$src_y=ImageSY($this->img);
$scale=min($x/$src_x,$x/$src_y);

if($scale<1)
{
$new_x=floor($scale*$src_x);
$new_y=floor($scale*$src_y);
$img_tmp=ImageCreateTrueColor($new_x,$new_y); //set the size of Canvas for the new Image
ImageCopyResampled($img_tmp,$this->img,0,0,0,0,$new_x,$new_y,$src_x,$src_y); //Resampled
ImageDestroy($this->img);
$new_function="Image".ucfirst($this->image_type);

return $new_function($img_tmp,$image_dist);
}
} // thumb end

//给图片生成文字水印
function image_press($image_dist,$str,$font="simkai.ttf") {
$str=iconv("GB2312","utf-8",$str);
$blue=ImageColorAllocate($this->img,90,255,255);
$white=ImageColorAllocate($this->img,255,0,0);
ImageTTFText($this->img,20,0,$this->src_x/2/2,$this->src_y-80,$white,$font,$str);
$new_function="Image".ucfirst($this->image_type);
return $new_function($this->img,$image_dist);
}

function rotate($image_dist,$angle)
{
$img_tmp=null;
$new_function="Image".ucfirst($this->image_type);
if(($angle!=90)&&($angle!=180)&&($angle!=270))
{
echo("Un-valid angle on calling CImage::rotate(\$image_dist,\$angle) .<p>The valid angle must be 90 or 180 or 270.");
return false;
}

if(($angle==90)||($angle==270))
{
$img_tmp=ImageCreateTrueColor($this->src_y,$this->src_x);
}
else
{
$img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);
}

switch($angle)
{
case 90:
for($i=0;$i<$this->src_x;$i++)
{
for($j=0;$j<$this->src_y;$j++)
{
ImageSetPixel($img_tmp,$this->src_y-$j-1,$i,ImageColorAt($this->img,$i,$j));
}
}
return $new_function($img_tmp,$image_dist);
break;

case 180:
for($i=0;$i<$this->src_x;$i++)
{
for($j=0;$j<$this->src_y;$j++)
{
ImageSetPixel($img_tmp,$this->src_x-$i-1,$this->src_y-$j-1,ImageColorAt($this->img,$i,$j));
}
}
return $new_function($img_tmp,$image_dist);
break;

case 270:
for($i=0;$i<$this->src_x;$i++)
{
for($j=0;$j<$this->src_y;$j++)
{
ImageSetPixel($img_tmp,$j,$this->src_x-$i-1,ImageColorAt($this->img,$i,$j));
}
}
return $new_function($img_tmp,$image_dist);
break;
} //end switch

} //end rotate

function rotate_h($image_dist)
{
$new_function="Image".ucfirst($this->image_type);
$img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);
ImageCopyResampled($img_tmp,$this->img,0,0,$this->src_x-1,0,$this->src_x,$this->src_y,-$this->src_x,$this->src_y); //水平翻转
return $new_function($img_tmp,$image_dist);
}

function rotate_v($image_dist)
{
$new_function="Image".ucfirst($this->image_type);
$img_tmp=ImageCreateTrueColor($this->src_x,$this->src_y);
ImageCopyResampled($img_tmp,$this->img,0,0,0,$this->src_y-1,$this->src_x,$this->src_y,$this->src_x,-$this->src_y);
return $new_function($img_tmp,$image_dist);
}
} //end CImage

参考资料:http://www.nayitian.net

热心网友 时间:2022-04-25 03:25

PHP给图片加水印:函数

// 上传附件函数
function acceptupload() {
global $DB, $FORM, $mysql_prefix, $attachment, $attachment_size, $attachment_name, $options, $allow_file_type;
@chdir("admin");//chdir -- 改变目录将 PHP 的当前目录改为admin
$attachment_name = strtolower($attachment_name);
$extension = getextension($attachment_name);
if (is_uploaded_file($attachment)) {//判断文件是否是通过 HTTP POST 上传的
if (in_array($extension, array('gif', 'jpg', 'jpeg', 'png'))) {//in_array()在数组中搜索指定的值
//echo $extension;
$path = "../uploadfiles/".$attachment_name;
} else {
echo "加水印";
//$path = "../uploadfiles/".$attachment_name;
}
if(!in_array($extension,$allow_file_type)) {
$FORM->ob_exit("文件格式不允许!");
}
@move_uploaded_file($attachment, $path);
@chmod ($path, 0666);
$attachment = $path;

[email=$filesize=@filesize($attachment]$filesize=@filesize($attachment[/email]);
if ($filesize != $attachment_size) {
@unlink($attachment);
$FROM->ob_exit("上传附件发生意外错误!");
}
}
Return true;
}

--------------------
如有疑问请留言~

热心网友 时间:2022-04-25 05:00

http://djh235.blog.163.com/blog/static/13976226200702194720244/
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
索尼爱立信Lt22i的狂野飙车的数据包该怎么删掉 小熊的音 飙风二重唱我怎么找不到 河南飙风信息科技有限公司怎么样 散粉和粉饼哪个定妆效果好 新手适合用散粉还是粉饼 手机端PokemonHome ...宝剑出匣耀光明 在匣全然不惹尘 今得贵人携出现 有威有势众人钦 奚惆怅而独悲的上一句是什么 贵州茂兰国家级自然保护区-荷花池地址在哪里? 请问一下拍出来的视频偏绿色,怎么用prcs6调回来呢? Premiere怎么去色处理-Premiere去色处理教程 如何在PDF文件上添加独特的水印? P图工具有哪些?要实用的. 求台湾电视直播软件电视可以看的 小学生五年级社会实践活动作文800字 手机收款为何蓝牙音响不报 求一篇在大学里注重实践的作文,800字 难忘的社会实践作文800字内容是和家人割禾 云南农信收款码连接蓝牙音响为什么收款不会语音播报收款 ...只提示微信收款成功,而没有金额播报是怎么回事?如何解决? 农行云音箱刚买了有时不播报是怎么回事? 借款人和担保人一同起诉还是分别起诉? 担保人想要起诉债务人需要什么条件 新大陆收款码云音箱不播报 向法院起诉债务人和担保人需要哪些资料 担保人起诉债务人的条件是什么? 微信收款语音播报,连接蓝牙音响,只提示微信收款成功,而没有金额播报是怎么回事?如何解决?我连接的收_百度问一问 社会实践作文800字龙翔 担保人怎样起诉借款人 担保人如何起诉借款人 收款音响没报是不是没收到款 boss直聘面试签到什么时候点 怎么做一份简单的地图指引,指导车辆到达某地 我的世界里怎么制作地图,不是游戏里面的那种指引路线的,而是自己创地图,给别人玩的那种 boos上的入职邀请函接受了,后期不去了有影响吗?- 问一问 手机怎么设置步行指引,方位定位 boss直聘上快到面试时间了,公司删除了面试,然后说不小心点的,,可靠吗 上古卷轴5 主线任务没有地图指引提示吗 在boss直聘的一家公司面试了,面试通过可以告知不去吗,这对我会不会有什么影响? 谁能告诉我一些英语考试的费用? 龙腾世纪审判怎么开启地图导航,就是地图上的路线指引,我玩的时候没有啊 wow地图上的任务指引不见了怎么调出来 wow24拉文霍德庄园 地图指引路线 会的来 考试费用多少? gmat考试费用多少 gmat考试费用是多少 ACCA考试费用要多少啊? 要打什么电话才可以查询医院的客服? 医院科室的电话在网上怎么查方便,,是在网上。。。 就诊卡里预留电话怎么查? 我想查询某家医院某个科长的电话或者是院长的电话是不是要打114查询呀?急急急 拜托拜托